java的继承机制
- 继承的概念
- 继承的步骤和语法
- 步骤
- 语法格式
- 继承的相关术语
- 继承的特点
- 继承的优缺点
- 优点
- 缺点
- 继承高级
继承的概念
继承是面向对象的三大基本特征之一。继承反映的是两个类之间的一种关系,在面向对象的程序设计中,根据已有的类派生出新的类,我们称之为继承机制。
继承的步骤和语法
步骤
- 把多个类中公共的属性和方法(变量名和方法名都相同)都抽取到一个类中,作为父类。
- 使用extends表示继承关系,子类继承父类。
语法格式
【修饰符列表】 class 子类名 extends 父类名{
类体(属性+方法)
}
继承的相关术语
假设B类继承A类,其中:
- A类称为:父类、基类、超类、superclass
- B类称为:子类、派生类、subclass
继承的特点
- 构造方法不能被继承(父类中抽取的是多个子类中变量 名和方法名都相同的公共属性和方法,而构造方法的方法名称跟类名一致,很显然不是公共方法)。
- 私有的属性和方法不能被继承。
- 一个父类可以有多个子类,但一个子类只能有一个父类。
- 与C++不同, java语言当中的继承只支持单继承。一个类不能同时继承很多类,只能继承一个类。
- 一个类可以间接继承其他类,也叫多重继承,如A继承B,B继承C,C继承D。
- 如果一个类没有显示继承任何类,该类默认继承了java.lang.Object类,Object是所有类的父类。
继承的优缺点
优点
- 提高代码的复用性,降低程序的冗余度。
- 最重要的作用是,有了继承机制的支持,才有了以后的“方法覆盖”和“多态机制”。
缺点
- 继承破坏了封装性。为了保证代码安全性,后期开发我们要对类中的属性进行封装,所以推荐在子类里定义属性,然后使用封装的语法对属性进行封装。
- 在项目开发中,要尽可能的实现项目功能的高内聚,低耦合。而继承恰恰提高了代码的耦合度。
继承高级
我们知道对象的创建一定会调用构造方法。当我们创建子类对象的时候,子类的构造方法会被调用,因为子类的构造方法中默认会有一个super(),这样父类的构造方法也会随之被 调用。这说明创建子类对象的时候,父类也被创建了对象。