è¿æ¯ä½ è¯å§ï¼æç¼è¯å¨é½å åå¹´äº
追ç...æ é£ä½ é®è¿ä¸ªåä»ä¹ï¼é¾éè¿è¦æå ¨å¥å¸®ä½ åå®ï¼
追é®æ¢ç¶ä½ ä¸ç¥éæå°±ä¸é®ä½ äº
那是不是父类的那个方法还存在啊
追答是的.
那父类的那个原方法还存在吗
追答父类的方法是会被覆盖了的,所以你可以理解为原方法不存在了。但是父类中的属性不会随继承转移到子类中,需要根据声明时类型来决定访问的是父类的变量还是子类的变量。
例如,
class A{
int a = 10;
}
class B extends A{
int a = 20;
}
public class Test16 {
public static void main(String[] args){
A a1 = new B();
System.out.println(a1.a);
B b1 = new B();
System.out.println(b1.a);
}
}
会输出结果10,,20。
如果你想访问父类中的方法,可以在子类中通过super关键字来访问。
public class Test {
}
class A {
public void print(String name) {
System.out.println(name);
}
}
class B extends A {
SUPER.print("aaa");
}
这么调用对不
当然不对
class A{
int a = 10;
public void ad(){
System.out.println("a");
}
}
class B extends A{
int a = 20;
public void ad(){
System.out.println("b");
}
public void c(){
super.ad();
}
}
你这不是重构了一次吗才调用的结果是应该是b吧,不重构直接用
追答嗯,你那样写是对的!不过我怎么记得你刚开始问的时候是A.print()。。。