Java温故而知新(七)

学习一下Java三大特性中的继承与多态:

 java的继承和多态主要是为了提升代码的复用性。

一.Java的继承:

  个人理解,继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

   java继承的关键字为extends和implements,其中extends只能继承一个父类,而implements可以实现多个父类的方法。

二.Java的多态:

 继承是多态的基础,如果没有继承就没有多态,多态使用父类对象类型接受子类实际对象,从而达到对父子类中成员变量以及方法的灵活使用,以及对方法中参数和返回值的灵活接收。

三.继承的内存关系图:

 1⃣️.由图可知继承和多态中成员变量和方法的访问特点: 

     1.子类拥有父类所有非private的属性,方法,但是父类不拥有子类独有的成员变量和方法。
     2.子类可以拥有自己的属性和方法,即子类可以对父类进行扩展;
     3.子类可以用自己的方式实现父类的方法,即方法的重写;
     4.一个子类只能有一个父类  一个父类能有多个继承;
   2⃣️.继承类中的成员变量和方法不重名:

     直接通过子类对象访问成员变量:等号左边是谁,就先用谁,没有则向上找。

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

     注意事项:无论是成员方法还是成员变量,如果没有都是向上找父类,绝对不会向下找子类的;

  3⃣️.继承类中的成员变量重名和方法重写:

     当访问成员变量时,在超类中用简单变量命名访问的一定是超类中的成员变量,而在子类代码中用简单变量名访问的则一定是在子类中的成员变量。

  当访问成员方法时,无论是以子类型还是父类型变量接收对象,执行的都是被重写的方法,即父类的方法被覆盖了。

 四.this关键字和super关键字

  http://www.cnblogs.com/hasse/p/5023392.html

  

猜你喜欢

转载自www.cnblogs.com/NiYv/p/12342068.html