A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 沉湎码海 中级黑马   /  2017-2-10 22:34  /  635 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

测试多态性案例讲解:



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





*/

1 个回复

倒序浏览
讲的可以,学到了很多
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马