标题: 多态问题 [打印本页] 作者: jttsai 时间: 2014-1-17 14:03 标题: 多态问题 abstract class A{
public A(){
this.print() ;
}
public abstract void print() ;
};
class B extends A{
private int x = 100 ;
public B(int x){
this.x = x ;
}
public void print(){
System.out.println("x = " + x) ;
}
};
public class TestJava{
public static void main(String args[]){
A a = new B(10) ;
}
};
public abstract void print() ;
};
class B extends A{
private int x = 100 ;
public B(int x){
this.x = x ;
this.print() ;
}
public void print(){
System.out.println("x = " + x) ;
}
};
public class TestJava{
public static void main(String args[]){
A a = new B(10) ;
}
};
这时打印的结果就为10了作者: 。子伤。 时间: 2014-1-17 19:41
黄晓鑫 发表于 2014-1-17 14:33
具体分析 A a = new B(10); 先创建B对象走相对应的构造方法 而B类继承了A了 B类的构造方法有一个隐式的supe ...
分析的不错作者: jttsai 时间: 2014-1-18 12:27
黄晓鑫 发表于 2014-1-17 14:33
具体分析 A a = new B(10); 先创建B对象走相对应的构造方法 而B类继承了A了 B类的构造方法有一个隐式的supe ...