Java 基础笔记 多态

extends继承或者implements接口实现,是多态的前提。

多态中成员变量的使用特点:

1.直接通过对象名称访问成员变量:看等号左边是谁,优先用谁的,没有则向上找。//Fu obj = new Zi(),等号左边是Fu类

  例: 创建一个类Fu,Fu包含成员变量num=10;

          创建一个类Zi,并Zi继承Fu,Zi中包含成员变量num=20;

          Fu obj = new Zi();

          System.out.println(obj.num);//输出10,调用的是父类的num

2.间接通过成员方法访问成员变量,看该方法属于谁,优先用谁的,没有则向上找。

//此处涉及多态中成员方法的使用特点,可先看下方多态中成员方法的使用特点有助于理解此点。

   例:创建一个类Fu,Fu包含包含成员变量num=10,成员方法shoutNum; //shoutNum方法为输出num

          创建一个类Zi,并Zi继承Fu,Zi包含成员变量num=20;

          Fu obj = new Zi();

          obj.shoutNum();//若子类中没有对父类的shoutNum方法进行覆盖重写,则子类中不含shoutNum方法,所以向上寻                                                   找,此时为调用父类的shoutNum方法,输出10;

          obj.shoutNum();//若子类中对shoutNum方法进行覆盖重写,则此时子类中有shoutNum方法,所以直接调用子类的                                                   shoutNum方法,输出20;

多态中成员方法的使用特点:

1.在多态的代码当中,成员方法的访问规则是看new的是谁则优先用谁,没有则向上寻找。

   Fu obj = new Zi();  //向上转型

   obj.method();//若父子都有method方法,则优先用子类的。

   obj.method();//若父类当中有method方法,但是子类没有,则向上寻找父类中的mothod方法。

   以上两个方法实现在前提是父类有method方法或者父子都有此法且子类对method方法实现了重写,所以可以父类.方法调用。

   注意:对象若向上转型为父类,则无法调用子类特有的方法。

   多态的好处,图例:

发布了30 篇原创文章 · 获赞 15 · 访问量 518

猜你喜欢

转载自blog.csdn.net/qq_40275740/article/details/104008479