class A{
void callme( ){
System.out.println("Inside A's callme( ) method");
}}
class B extends A{
void callme( ){
System.out.println("Inside B's callme( ) method");
}}
public class Dispatch{
public static void main( String args[ ] ){
A a = new B( );
a.callme( );
}
}
A a = new B( );
这个,一般是A a = new A()吧?还有 B是个类, 而B()是怎么来的求教~~谢啦
void callme( ){
System.out.println("Inside A's callme( ) method");
}}
class B extends A{
void callme( ){
System.out.println("Inside B's callme( ) method");
}}
public class Dispatch{
public static void main( String args[ ] ){
A a = new B( );
a.callme( );
}
}
A a = new B( );
这个,一般是A a = new A()吧?还有 B是个类, 而B()是怎么来的求教~~谢啦
关于A a=new B(); 对象a调用的构造函数,其实是类B的!因为类A是抽象类,无法定义对象。 个人观点啊!
在这里创建了两个对象:
A ,B
用A的引用指向B对象,这叫上转型,父类对象引用了子类对象。两个构造函数都调用了。
另外,可验证7楼的说法:两个构造函数都调用了class A{
A(){//void callme( ){
System.out.println("Inside A's callme( ) method");
}}
class B extends A{
B(){//void callme( ){
System.out.println("Inside B's callme( ) method");
}}
public class Dispatch{
public static void main( String args[ ] ){
A a = new B( );
// a.callme( );
}
}
public static void main( String args[ ] ){
A a = new B( ); //B a=new B();
a.callme( ); //a.callme();
}
}
楼主写的代码和注释里的代码其实是一样的,最后都是输出“Inside B's callme( ) method”