新手求教,关于多肽

debugbt 2018-01-27 07:44:00
package Mixed2;

class A{
int ivar = 7;
void m1() {
System.out.print("A's m1, ");
}
void m2() {
System.out.print("A's m2, ");
}
void m3() {
System.out.print("A's m3, ");
}
}

class B extends A {
void m1() {
System.out.print("B's m1, ");
}
}

class C extends B {
void m3() {
System.out.print("C's m3, "+(ivar + 6));
}
}
public class Mixed2 {

public static void main(String[] args) {
// TODO Auto-generated method stub
A a = new A();
B b = new B();
C c = new C();
A a2 = new C();
a2.m1();
a2.m2();
a2.m3();
}

}
结果是啥










...全文
352 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
爱摸鱼de老邪 2018-01-28
  • 打赏
  • 举报
回复
B's m1, A's m2, C's m3, 13。 A2实际上是一个C类对象的引用,C类实现了m3方法,所以a2.m3调用C类本身实现的m3方法,C没有实现m1,所以向上调用其父类B中实现的m1方法,B、C类均没有实现m2方法,所以调用A类实现的m2方法。属性ivar为从A类继承而来,在m3方法中与6相加,最后得13。

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧