java面向对象12_继承(inheritance)

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.继承的使用要点

  • 使用继承的好处
  1. 继承的出现提高了代码的复用性,提高软件开发效率。

  2. 继承的出现让类与类之间产生了关系,提供了多态的前提。

  • 继承的注意点
  1. java 只支持单继承,不允许多继承,也就是说一个类只能有一个直接父类。

  2. java 支持多层(重)继承,即一个类的父类可以再去继承另外的父类(继承体系)。

  3. 如果定义一个类时,没有使用extends,则它的父类默认是:java.lang.Object。

ps:如需最新的免费文档资料和教学视频,请添加QQ群(627407545)领取。

发布了55 篇原创文章 · 获赞 0 · 访问量 797

猜你喜欢

转载自blog.csdn.net/zhoujunfeng121/article/details/104600382
今日推荐