是否可以从父类访问子类方法?
public class C1 {
public C1(){
System.out.println("Constructor C1");
}
}
public class C2 extends C1{
public void m1(){
System.out.println("print from m1");
}
}
public class C3 extends C1{
public void m2(){
System.out.println("print from m2");
}
}
public class TestMain{
public static void main(String[] args){
C1 c1 = new C1();
}
}
无论如何都要访问c1.m1()& c1.m2()没有初始化子类?
答案 0 :(得分:1)
否则不存在:c1
是引用类型为C1
的对象的引用。没有转换可以用来欺骗Java认为它是C2
或C3
。
通常做的是在abstract
,工具中定义mSomething
函数C1
。类和使用
C1 c = new C2();
c.mSomething()
将调用多态,即子类中所需的函数。
另一种方法是制作m1
和m2
static
,让他们将C1
实例作为参数。