Java 面向对象(四)继承

一、继承的概述

  1、由来

    多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。

    其中,多个类可以称为 子类,单独的那一个类称为 父类超类super class)或 基类

   继承描述的是事物之间的所属关系,这种关系是 : is - a 的关系。(子类就是一个父类:子类 is a 父类)

   如上图:兔子属于食草动物,食草动物属于动物。可见,父类是通用,子类更具体。通过继承,可以使多种事物之间形成一种关系体系。

  2、定义

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

  3、好处

      a、提高代码的复用性

    b、类与类之间产生了关系,是多态的前提

二、继承的格式

    通过 extends 关键字,可以声明一个子类继承另外一个父类。

   定义格式:

// 定义父类
class 父类名称 {
...
}
// 定义子类 class 子类名称 extends 父类名称 { ... }

  

三、继承后的特点——成员变量

   当类之间产生了关系后,其中各类中的成员变量会产生影响,分为下面两类来讨论:

  1、成员变量不重名

    如果子类父类中出现不重名的成员变量,这时候的访问是没有影响的。

   Demo:

 1 // 父类
 2 class Fu {
 3     // Fu中的成员变量。
 4     int num = 5;
 5 }
 6 // 子类
 7 class Zi extends Fu {
 8     // Zi中的成员变量
 9     int num2 = 6;
10     // Zi中的成员方法
11     public void show() {
12         // 访问父类中的num,
13         System.out.println("Fu num="+num); // 本类中没有,继承而来,所以直接访问。
14         // 访问子类中的num2
15         System.out.println("Zi num2="+num2);   // 本类中有,访问本类中num2
16     }
17 }
18 // 测试类
19 class Test{
20 public static void main(String[] args) {
21     // 创建子类对象
22     Zi z = new Zi();
23     // 调用子类中的show方法
24      z.show();
25     }
26 }
27 
28 演示结果:
29 Fu num = 5
30 Zi num2 = 6

  2、成员变量重名

    如果子类父类中出现重名的成员变量,这时候的访问是有影响的。

     Demo:

四、继承后的特点——成员方法

五、继承后的特点——构造方法

六、super 和 this

七、继承的特点

七、

猜你喜欢

转载自www.cnblogs.com/niujifei/p/11354812.html