一.什么是继承
继承:在现实世界当中也是存在的。 例如:父亲很有钱,儿子不用努力也很有钱。
二.继承的作用:
基本作用:子类继承父类,代码可以得到复用。(这个不是重要的作用,是基本作用。)
主要作用:因为有了继承关系,才有了后期的方法覆盖(重写)和多态机制。
java只允许单继承,不允许多继承,可以多层继承。java是简单的。
c++支持多重继承,c++更接近现实一些,因为在现实世界中儿子同时继承父母两方特征。
class E extends A, B{ //java中不支持多继承
}
三.继承的相关特性:
1.B类继承A类,则称A类为超类(superclass)、父类、基类,B类为子类(subclass)、派生类,扩展类。
class A{
}
class B extends A{ //B类继承A类
}
superclass 父类
subclass 子类
2.java中继承只支持单继承,不支持多继承,c++中支持多继承,
这也是java体现简单性的一点,换句话说,java中不允许这样写代码:
class B extends A,C{ // 这是错误的。
}
3.虽然java中不支持多继承,但有时候会产生间接继承的效果,
例如:
class C extends B,class B extends A,也就是说,c直接继承B,
其实c还间接继承A。
4.java中规定,子类继承父类,除构造方法不能继承之外,剩下的都可以继承,但是私有的属性无法在子类中直接访问。(父类中的private修饰的不能在子类中直接访问,可以通过间接的手段来访问。)
5.java中的类没有显示的继承任何类,则默认继承object类,object类是java语言提供的根类(老祖宗类),也就是说,一个对象与生俱来就有object类中所有的特征。
6.继承也存在一些缺点,例如:A类继承B类会导致他们之间的耦合度非常高,B类发生改变后马上影响到A类。
继承缺点:耦合度高,父类修改,子类受牵连。
Z继承了Y,Y继承了X,X继承了object。
Z对象具有object对象的特征(基因)。
object是所有类的超类,老祖宗,类体系结构中的根。
java这么庞大的一个继承结构,最订单是object。
继承的相关特性:
新的类没有继承的别的类时,会默认继承object类型,Object是所有类的父类。