20220724-Java的继承

含义

继承Extends
面向对象最显著的一个特性,继承是从已有的类中派生出新的类,新的类能吸收已有类的性和方法,并能扩展新的能力。

代码示例

class People {
//父类的私有属性
private String name;
private String color;
private int age;
//父类构造器
public People(String name, String color, int age) {
this.name = name;
this.color = color;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//父类共有方法
public void eat() {
System.out.println("吃东西");
}
}
class Student extends People {
//子类特有属性
private int id;
//子类构造器
public Student(String name, String color, int age, int id) {
super(name, color, age);
this.id = id;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
//子类可以覆盖父类中已有的方法,进行差异化设计
@Override
public void eat() {
System.out.println("学生吃东西");
}
//子类中特有的方法
public void xuexi() {
System.out.println("学习");
}
}

使用方法和注意事项

  1. 子类自动拥有父类定义的属性和方法
  2. 父类又叫做超类、基类
  3. 子类又叫导出类、派生类
  4. 继承可以调高代码复用性
  5. 继承提高代码扩展性和维护性
  6. 子类必须调用父类的构造器,完成父类的初始化
  7. 当创建子类对象时,不管使用子类的哪个构造器,默认情况下总会去调用父类的无参构造器,如果父类没有提供无参构造器,则必须在子类的构造器中显示使用super去指定调用父类的哪个构造器完成父类的初始化工作,否则编译不通过
  8. super在使用时,需要放在构造器第一行
  9. super()与this()都只能放在构造器第一行,因此两个方法不能存在同一个构造器中
  10. Java所有类都是Object类的子类
  11. 子类最多只能继承一个父类(直接继承),java为单继承机制
  12. 不能滥用继承,子类和父类的关系需要满足is-a的逻辑关系
  13. 继承设计的基本思想:父类的构造器完成父类属性的初始化,子类构造器完成子类属性的初始化

个人理解

  1. 因为继承是is-a的关系,子类需要具有父类的属性和方法,但可以保持其独特性和扩展性,比如学生和职员都属于人类,可以将人类作为基类,而学生和职员分别作为子类;人类都具备姓名、性别等属性,都具备吃饭、睡觉等方法,但是学生除上述外还具备学号、分数等一些特有属性,具备上课学习等特有方法。
  2. 基类中应该包含共有的属性和方法
posted @   淡忘的江南  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示