有没有办法在类 c 中创建的类<em> b 对象的类a中调用test()
?
class a {
void test(){
System.out.println("in a");
}
}
class b extends a {
void test(){
System.out.println("in b");
}
}
public class c{
public static void main(String[] args) {
b refb = new b();
refb.test();
}
}
答案 0 :(得分:2)
您只能在类test()
的{{1}}方法中执行此操作,如下所示。
b
答案 1 :(得分:0)
在Java中,默认情况下,所有非static private
方法都是virtual
。因此,除非您修改a#test
,否则无法从b
实例调用b#test
。唯一的方法(根据您当前的设计)使用a
:
public class c{
public static void main(String[] args) {
b refb = new b();
// code to call test() in class a
//this is the only way you have in Java
a refA = new a();
a.test();
}
}