把多个类相同的内容提取到另外一个类中,然后使用关键字extends来实现继承
(1)语句格式:class 子类名 extends 父类名{...}
eg:要实现一个继承关系至少需要2个类
class Fu{...}
class Zi extends Fu{...}
这里的Zi我们称之为子类,派生类
这里的Fu我们称之为父类,超类,基类
(2)继承的好处:
A.提高了代码的复用性 看一看父类
B.提高了代码的维护性 只需要修改父类的内容
C.让类与类之间产生了继承关系,为了后面多态做铺垫(要有继承才能有多态)
继承的坏处:
A.类的耦合性增强了
a.开发的原则: 低耦合,高内聚
耦合:类与类之间的关系
内聚:类自己本身可以完成的事情
(3)Java中继承的特点:
A.Java中的类class只支持单个继承,不允许多个继承
eg:class Father4{}
class Mother4{}
class Son extends Father4,Mother4{} //错误,不允许这么做
B.Java中的类支持多层继承(形成了一个继承体系)
(4)使用继承时所需要的注意事项:
A.要想初始化子类,必须先初始化父类 。
B.子类只能继承父类的非私有的成员(成员变量和成员方法)。
C.子类不能继承父类的构造方法,但是可以通过super关键字去访问父类的构造方法 ,因为要想初始化子类,必须先初始化父类,是通过构造方法进行初始化的。
D.不要因为一小部分的功能相同而去使用继承。
E.在英语中有一个语法叫“is a” 当两个类满足语法什么是什么的时候,就可以使用继承了。
eg:Person -->Teacher,Student,Doctor
eg:
class Father {
int num1 = 20;
private int num2 = 30;
Father() {
System.out.println("这是父亲的无参构造方法");
}
private void fun1() {
System.out.println(num1);
}
}
class Son extends Father {
public void fun2() {
System.out.println(num1);
// System.out.println(num2); // 子类不能继承父类的成员变量
}
}
public class InheritTest {
public static void main(String[] args) {
Son son = new Son();
son.fun2();
// son5.fun1(); // 子类不能继承父类的私有成员方法
}
}
/*运行结果:
这是父亲的无参构造方法
20
*/