继承:
1. 什么是继承?有什么用?
继承用extends修饰,形成继承关系。
继承的作用:
-
基本作用:子类继承父类,代码得到复用
-
重要作用:有了继承关系才有方法的重写和多态机制。
2.继承的六个特性
1. B类继承A类,则A类称为superclass(超类/父类/基类),B类称为subclass,称为派生类,拓展类,子类。
2. JAVA中只有单继承,没有多继承。
以下代码错误:
class A extends B,C{
}
3. JAVA中虽然没有多继承,但是存在间接继承关系
class Person estends Objects{
}
class Student extends Person{
}
Student类继承Person类,Person类继承Object类,也就是说Student类间接继承Object类。
4. Java中规定,继承父类的子类除了构造方法不能继承外,剩下的都可以继承。但是私有的属性继承后无法在子类中直接进行访问(父类的private修饰的属性不能在子类中直接进行访问,但是可以通过间接的手段进行访问)
5.所有类没有显式的继承关系时,都默认继承Object类
6.继承也存在缺点,当父类发生改变后,子类也会受影响,我们称之为耦合度过高。
3.什么时候采用继承?is a
当两个类可以通过is a 连接描述的时候
凡是采用“is a”能描述的,都可以继承。
例如:
Cat is a Animal:猫是一个动物
Dog is a Animal:狗是一个动物
CreditAccount is a Account:信用卡账户是一个银行账户
....
假设以后的开发中有一个A类,有一个B类,A类和B类确实也有重复的代码,
那么他们两个之间就可以继承吗?不一定,还是要看一看它们之间是否能够
使用is a来描述。
class Customer{
String name; // 名字
// setter and getter
}
class Product{
String name; // 名字
// setter and getter
}
class Product extends Customer{
}
以上的继承就属于很失败的。因为:Product is a Customer,是有违伦理的