3. 已知: class A { public final void m() { System.out.println("A.m"); } } public class B extends A
这要如何让计算,求助!!3.已知:classA{publicfinalvoidm(){System.out.println("A.m");}}publicclassBex...
这要如何让计算,求助!!
3. 已知:
class A {
public final void m() {
System.out.println("A.m");
}
}
public class B extends A {
public void m() {
System.out.println("B.m");
super.m();
}
public static void main(String [] args) {
new B().m();
}
}
那么结果为?
(A)A.m
(B)B.m
(C)B.m
A.m
(D)编译错误 展开
3. 已知:
class A {
public final void m() {
System.out.println("A.m");
}
}
public class B extends A {
public void m() {
System.out.println("B.m");
super.m();
}
public static void main(String [] args) {
new B().m();
}
}
那么结果为?
(A)A.m
(B)B.m
(C)B.m
A.m
(D)编译错误 展开
1个回答
展开全部
你好刚才说了定义了final类型就不能被重写了,所以这样是错误的,编译不能通过、、、
不知道,楼主要表达什么?
楼主刚学java吧?这个程序才这么不到两行,问题就很多呢。
1、 System.out.println("A.m");中A.m加在了双引号中,程序只是被识别为字符串,只能被原样打印出。
2、如果楼主要表达调用A中的m()方法的话,问题就又来了,首先,方法调用不正确,应该为A.m(),但是在此处是不可以这样调用的,因为m()方法是非静态的,要这样调用,就要把m()方法定义为static类型,或者是,创建一个A的子类,然后通过子类调用m()方法;
3、final声明的方法不能被重写,不知道楼主为什么要在这里加final,class B还没写完整,{}都没有
4、另外,你的这个排版格式太乱了,要做一个好的程序员,开始就要很注重格式排版的,要养成良好的习惯。
呵呵,费了这么大劲,采纳下吧,有什么不明白的可以hi我。
不知道,楼主要表达什么?
楼主刚学java吧?这个程序才这么不到两行,问题就很多呢。
1、 System.out.println("A.m");中A.m加在了双引号中,程序只是被识别为字符串,只能被原样打印出。
2、如果楼主要表达调用A中的m()方法的话,问题就又来了,首先,方法调用不正确,应该为A.m(),但是在此处是不可以这样调用的,因为m()方法是非静态的,要这样调用,就要把m()方法定义为static类型,或者是,创建一个A的子类,然后通过子类调用m()方法;
3、final声明的方法不能被重写,不知道楼主为什么要在这里加final,class B还没写完整,{}都没有
4、另外,你的这个排版格式太乱了,要做一个好的程序员,开始就要很注重格式排版的,要养成良好的习惯。
呵呵,费了这么大劲,采纳下吧,有什么不明白的可以hi我。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询