1.继承的基本概念及实现
- 定义:一个类从已有的类那里获得其已有的属性和方法,这种现象叫做类的继承。
这个新类叫做子类,也叫做派生类;已有的那个类叫做父类,也叫做基类。
- 意义:
代码得到了极大的重用。
形成一种类的层次体系机构。
为多态创造条件。
- 继承的实现(extends关键字和implements)
extends:在 Java 中,类的继承是单一继承,所以 extends 只能继承一个类。
implements:使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)。
class Human
{
public int age;
public String name;
}
class Student extends Human
{
public double score;
}
public interface A
{
public void eat();
}
public interface B
{
public void sleep();
}
public class C implements A,B
{
}
2.继承权限问题
- 同包:父类的私有成员不可以被子类继承,其他的成员都可以被子类继承。
注意:父类的所有成员物理上都被继承过来了,但私有成员在逻辑上不可以被访问,因此继承的时候必须慎重,否则会浪费内存。(如果随意的继承会导致子类非常臃肿,创建子类对象时占用极大的空间)
3.继承的原则
- 何时选择继承?
B是一个A吗?
如果是则让B做A的子类。
- 继承必须是同种类型间继承,反映的是从一般到特殊的关系。
- 常见错误:汽车轮子成为汽车子类是错误的。(原因:汽车轮子不是汽车)
4.Java只支持单继承,不允许多继承
- 单继承:一个子类只能有一个父类
多继承:一个子类可以有多个父类(只有C++允许多继承)
- 可以有多重继承,如类B继承类A,类C继承类B,那么类C间接继承了类A