注意可以只建立一个B.java文件,先写声明类A,再声明类B
编写抽象类A, 具有一个抽象方法method1,以及一个非抽象方法method2,功能为打印class A method2, 方法均为public。
编写类B继承A, 具有两个具体方法method1和method2,前者打印class B method1, 后者先调用方法method1, 然后打印方法class B method2。
在类B中还包含main函数,内容为A obj = new B(); obj.method2();则运行结果是什么?说明obj到底是父类还是子类对象?
A.java
public abstract class A{
public abstract void method1();
public void method2() {
System.out.println("class A method2");
}
}
B.java
public class B extends A {
@Override
public void method1() {
// TODO Auto-generated method stub
System.out.println("class B method1");
}
public void method2() {
method1();
System.out.println("class B method2");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
A obj=new B();
obj.method2();
}
}
运行结果:
父类对象,子类扩充了对象。