Java 在现有类上使用派生类-继承

Java 在现有类上使用派生类-继承,java,inheritance,Java,Inheritance,当我们可以简单地实例化现有类中的另一个对象时,为什么我们需要继承概念? 例如: 班主任 { } 班级学生延伸人 { } 在这里,班级学生和个人拥有IS-A关系。但是,当我们可以向Person类添加相同的功能时,定义student类有什么必要呢?简单的答案是代码重用 假设我们还有以下类:Employee、Child、Manager、Student等。如果我们想添加一些所有这些类都通用的功能,比如:name、姓氏、birthdate,该怎么办?我们必须将它添加到代码中的每个类中 这就是类继承帮助我们

当我们可以简单地实例化现有类中的另一个对象时,为什么我们需要继承概念? 例如: 班主任 { } 班级学生延伸人 { }


在这里,班级学生和个人拥有IS-A关系。但是,当我们可以向Person类添加相同的功能时,定义student类有什么必要呢?

简单的答案是代码重用

假设我们还有以下类:Employee、Child、Manager、Student等。如果我们想添加一些所有这些类都通用的功能,比如:name、姓氏、birthdate,该怎么办?我们必须将它添加到代码中的每个类中

这就是类继承帮助我们重用代码的地方: 1.我们可以创建一个与其他类通用的类。在本例中,一个名为Person的类。 2.使其他类成为Employee,Student从此类继承

它还有其他优点。例如,如果我们有一个方法接受Person类型的对象,那么它将适用于类继承自类Person的对象

为什么我们需要继承的概念

你实际上是在问这样一个问题:既然你可以强制性地编写代码,为什么还要麻烦OOP呢

这实际上是一个编码实践/范式选择的问题,正如@ammaro所说,在这个特定场景中,通过利用继承,您不仅能够以更干净、更有组织的方式重构代码,而且还能够通过这样做遵循正确的面向对象编程实践

撇开理论不谈,在实践中,您需要定义Student类的原因是它具有Person类的属性,并且基于Person类,但它具有其他区别于Person类的特性,因此应该单独创建


希望这有帮助

阅读文档并搜索有关详细信息功能是否属于Person类?例如:您可以在Person类中实现一个学习方法,但功能是否属于Person类?教师也是Person,两者都有出生日期。你会在两个类中复制该字段还是只在Person类中放置一次?但是当我们可以向Person类添加相同的功能时,需要定义student类吗?你不能。例如,一个学生有一所大学,一个人没有。