黑马程序员技术交流社区

标题: 测试多态型案例 [打印本页]

作者: 沉湎码海    时间: 2017-2-10 22:34
标题: 测试多态型案例
测试多态性案例讲解:



/*
        测试多态型
       
       
       
        分析:
       
                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()方法。
               
               





*/


作者: xiaoyizi    时间: 2017-2-10 22:42
讲的可以,学到了很多





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2