继承(extends)

继承(extends)

开发工具与关键技术:eclipse  java
作者:梁峻豪
撰写时间:2021.5.8

Java继承(extends)

Java中的继承就是在已经存在类的基础上进行扩展,从产生新的类。
已经存在的类称为父类、基类或超类,而新产生的类称为子类或派生类。
在子类中,不仅包含父类的属性和方法(子类拥有父类非private的属性、方法),还可以增加新的属性和方法。

Java中子类继承父类的语法格式如下:
在这里插入图片描述

其中,class_name表示子类(派生类)的名称:teshi表示父类(基类)的名称:
extends关键字直接跟在子类名之后,其后面是该类要继承的父类名称。
如:public class Student extends Person{}
例:教师和学生都属于人,他们具有共同的属性:姓名、年龄、性别和身份证号,而学生还具有学号和所学专业两个属性,教师还具有教龄和所教专业两个属性。编写 Java 程序代码,使教师(Teacher)类和学生(Student)类都继承于人(People)类,具体的实
1、创建人类 People,并定义 name、age、sex、sn 属性,代码如下:现步骤如下。
在这里插入图片描述

如上述代码,在 People 类中包含 4 个公有属性、一个构造方法和一个 toString() 方法。
2、创建 People 类的子类 Student 类,并定义 stuNo 和 department 属性,代码如下:
在这里插入图片描述

由于 Student 类继承自 People 类,因此,在 Student 类中同样具有 People 类的属性和方法,这里重写了父类中的 toString() 方法。
3、创建 People 类的另一个子类 Teacher,并定义 tYear 和 tDept 属性,代码如下:
在这里插入图片描述

Teacher 类与 Student 类相似,同样重写了父类中的 toString() 方法。
4、编写测试类 PeopleTest,在该类中创建 People 类的不同对象,分别调用它们的toString() 方法,输出不同的信息。具体的代码如下:
在这里插入图片描述

单继承

Java 不支持多继承,只允许一个类直接继承另一个类,即子类只能有一个直接父类,extends 关键字后面只能有一个类名。
例如,如下代码会导致编译错误:
class Student extends Person,Person1,Person2{…}
class Student extends Person,extends Person1,extends Person2{…}
很多地方在介绍 Java 的单继承时,可能会说 Java 类只能有一个父类,严格来讲,这种说法是错误的,应该是一个类只能有一个直接父类,但是它可以有多个间接的父类。
如果定义一个 Java 类时并未显式指定这个类的直接父类,则这个类默认继承java.lang.Object 类。
因此,java.lang.Object 类是所有类的父类,要么是其直接父类,要么是其间接父类。
因此所有的 Java 对象都可调用 java.lang.Object 类所定义的实例方法。
继承的优缺点
在面向对象语言中,继承是必不可少的、非常优秀的语言机制,它有如下优点:
实现代码共享,减少创建类的工作量,使子类可以拥有父类的方法和属性。
提高代码维护性和可重用性。
提高代码的可扩展性,更好的实现父类的方法。
继承的缺点如下:
继承是侵入性的。只要继承,就必须拥有父类的属性和方法。
降低代码灵活性。子类拥有父类的属性和方法后多了些约束。
增强代码耦合性(开发项目的原则为高内聚低耦合)。当父类的常量、变量和方法
被修改时,需要考虑子类的修改,有可能会导致大段的代码需要重构。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值