abstract class Town{
private String sDialingCode;
public String getDialingCode() {
return sDialingCode;
}
public void setDialingCode (String sDialingCode) {
this.sDialingCode=sDialingCode;
}
}
public class Felpersham extends Town {
public static void main(String argv[]){
System.out.println(new Felpersham().getDialingCode());
}
Felpersham(){
setDialingCode( "1");
System.out.println(super.getDialingCode());
}
}
如何解解析结果为:
1
1
私有变量不是不可以继承吗?
private String sDialingCode;
public String getDialingCode() {
return sDialingCode;
}
public void setDialingCode (String sDialingCode) {
this.sDialingCode=sDialingCode;
}
}
public class Felpersham extends Town {
public static void main(String argv[]){
System.out.println(new Felpersham().getDialingCode());
}
Felpersham(){
setDialingCode( "1");
System.out.println(super.getDialingCode());
}
}
如何解解析结果为:
1
1
私有变量不是不可以继承吗?
Felpersham类中本身没有"getDialingCode()"方法,"new Felpersham().getDialingCode();"时,就是子类调用父类的方法,等效于super.getDialingCode();如果你在Felpersham类中也写一个同样的"getDialingCode()"方法,将Town类的此方法覆盖掉,那效果就不一样了。
在Java高级特性里面,有一句话是继承的特性,是父类引用指向子类对象,这里就是这么一回事了!