1.继承的概念
封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。
在现实生活中,继承一般指的是子女继承父辈的财产。在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。从英文字面意思理解,extends的意思是“扩展”。子类是父类的扩展,现实世界中的继承无处不在,如下图所示:
上图中,哺乳动物继承了动物。意味着,动物的特性,哺乳动物都有;在我们编程中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类(也称作超类、基类、派生类等),子类会自动拥有父类所有可继承的属性和方法。
2.继承的使用
继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
在Java之中,如果要实现继承的关系,可以使用如下的语法:
class 父类 {
}
class 子类 extends 父类 {
}
子类又被称为派生类,父类又被称为超类(Super Class)。
【示例】使用extends实现继承
// 父类:Person类
class Person {
// 成员变量
private String name;
// set和get方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// 成员方法
public void eat() {
System.out.println("eat...");
}
}
// 子类,Teacher类
public class Teacher extends Person {
// 成员变量
private String title; // 职称
// set和get方法
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
// 成员方法
public void teaching() {
System.out.println("授课...");
}
}
// 测试类
public class InheritanceDemo {
public static void main(String[] args) {
Teacher t = new Teacher();
t.setName("周老师"); // 父类属性
t.setTitle("JavaSE阶段讲师"); // 子类属性
t.eat(); // 父类方法
t.teaching(); // 子类方法
System.out.println("name:"+t.getName()+" age:"+t.getAge());
}
}
在上述代码中,Teacher类通过extends关键字继承了Person类,这样Teacher类便是Person类的子类。
从运行结果不难看出,子类虽然没有定义name属性和eat()方法,但是子类却能访问。这就说明,子类在继承父类的时候,会自动拥有父类的属性和方法,并且子类还可以拥有自己的属性和方法,即子类可以对父类进行扩展!
3.继承的使用要点
- 使用继承的好处
-
继承的出现提高了代码的复用性,提高软件开发效率。
-
继承的出现让类与类之间产生了关系,提供了多态的前提。
- 继承的注意点
-
java 只支持单继承,不允许多继承,也就是说一个类只能有一个直接父类。
-
java 支持多层(重)继承,即一个类的父类可以再去继承另外的父类(继承体系)。
-
如果定义一个类时,没有使用extends,则它的父类默认是:java.lang.Object。
ps:如需最新的免费文档资料和教学视频,请添加QQ群(627407545)领取。