1.java学习---继承

一、继承的基本概述

  1. 继承的概述

    就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。

  2. 继承的格式

    public class 子类 extends 父类{

    }

  3. 继承的优缺点

    (1)子类自动拥有了父类的非私有的成员,子类也可以有自己的成员。

    (2)提高了代码的互用性和扩展性。

    (3)耦合性太高,不利于开发原则:高内聚低耦合。

    (4)java中只支持单继承。


二、继承的特点

  1. 继承中成员变量的访问特点

    子类和父类的成员变量重名时,如Zi类和Fu类中都有int num;变量,可以用zi.num或fu.num进行访问子类或父类中的变量。也可以用this和super关键字,this代表当前的对象,super代表父类对象,用this.num和super.num进行访问。

    如果局部变量中也有num时,直接访问num,会根据就近原则,访问这个局部变量的num.


2.继承中成员方法的访问特点

如果出现重名的方法,会使用子类的方法;不重名的情况下,现在子类中寻找该方法,找不到从父类中寻找。


三、继承中的方法重写

  1. 方法重写的概念

    子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效果,也称为重写或者复写。声明不变,重新实现 。

2.注意事项

(1)子类和父类的方法名和参数列表必须一样。

(2)子类的返回值小于等于父类的返回值范围。 建议父类的返回值是什么,在子类的返回值就写什么类型。

(3)子类的权限必须是大于等于父类的权限, public > protected > (default) > private。

3.应用场景

       当父类满足不了子类的需求的时候,我们要重写父类中的方法(当父类满足了子类需求的时候,不需要重写直接使用即可),在使用的时候,使用的是子类重写父类后的方法,使子类有了特有的功能,也保有了父类的功能。

4.继承中的构造方法

(1)构造方法的名字是与类名一致的。所以子类是无法继承父类构造方法的。
(2)构造方法的作用是初始化成员变量的。所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构造方法中默认有一个 super() ,表示调用父类的构造方法,父类成员变量初始化后,才可以给子类使用。

(3)如果不想让子类默认调用父类的无参构造,必须是在子类中的构造方法的第一行写,super(无参/有参),就不会默认调用父类的无参构造。

举例:

image.png


image.png


image.png


运行结果:

image.png







猜你喜欢

转载自blog.51cto.com/13570211/2149664