测试多态性案例讲解:
/*
测试多态型
分析:
1.定义一个BaseClass类,然后在定义一个子类 SubClass,
2.在子类中,重写父类的book属性,和test方法
3.创建一个父类对象,给父类变量
4.用父类对象调用book属性和test方法
5.创建一个子类对象,用子类对象调用book属性和test方法
6.创建一个子类对象,把其赋值给BaseClass类变量,并用该变量调用book属性和test方法
*/
//定义一个BaseClass类
class BaseClass{
public int book =16;
public void base(){
System.out.println("父类的普通方法");
}
public void test(){
System.out.println("我是父类的test方法");
}
}
//定义一个SubClass类,并重写相关属性和方法
//再定义第二个类
public class SubClass02 extends BaseClass{
//重新定义一个book实例属性覆盖父类的book实例属性
public String book ="轻量级J2EE企业应用实战";
public void test(){
System.out.println("子类中用以覆盖父类的方法");
}
public void sub(){
System.out.println("子类的普通方法");
}
public static void main(String[] args){
//创建一个子类对象,并用子类变量接收
SubClass02 sc = new SubClass02();
//用父类对象调用book属性和test方法
System.out.println();
System.out.println();
System.out.println("我是用子类对象调用的book属性是: "+sc.book);
System.out.println("我是用子类对象调用的子类的test方法 ");
sc.test();
}
}
/*
运行结果:
C:\Users\sa\Desktop\关键问题\多态问题\TestCode>java SubClass02
我是用子类对象调用的book属性是: 轻量级J2EE企业应用实战
我是用子类对象调用的子类的test方法
子类中用以覆盖父类的方法
C:\Users\sa\Desktop\关键问题\多态问题\TestCode>
由此可以看出:
当用子类变量接收子类对象时,子类对象调用重写的属性和方法时,被调用的是子类中自定义的book属性和test()方法。
*/
|
|