JaveSE进阶(继承,方法重写)

2023-07-25  本文已影响0人  扶光_

一,继承

关键extends,用这个关键字我们可以让一个类和另一个类建立起父子关系

public class Student extends People{}
我们称子类为student,父类为people
作用,子类继承父类就可以使用父类的属性和方法

当我们开发过程中会有很多相同的属性和方法

继承
继承
提高了代码的复用性,减少冗余

比如我们要做一个系统,其中系统角色分为学生,老师
学生(姓名,学号,性别,查看成绩)
老师(姓名,教师号,性别,查看成绩,录入成绩)
所以我们就可以将相同的属性和方法放在一个父类中,通过继承来实现功能


二,继承的特点


子类是否可以继承父类的私有成员呢?
其实是继承了的,只是不能直接访问


子类是否可以继承父类的静态成员
并不是继承关系,static修饰的本身就是共享的,只有一份

继承后在子类中访问成员变量/方法采用就近原则
先找子类局部,再子类成员范围,再子类

如果子类和父类中出现了重名的成员,会优先使用子类的,那么我们想使用父类的该怎们去做呢
在子类中访问父类的成员用super

三,方法重写

在继承体系中子类出现了和父类一模一样的方法声明,我们就称子类这个方法是重写的方法

应用场景

旧手机(父类)的功能只能是打电话,发信息
新手机(子类)的功能需要基本的打电话下支持视频,基本的发信息需要发送语言


image.png

重写方法的名称,形参列表必须与被重写方法必须一模一样
私有方法子类不允许被重写
子类重写父类方法时,访问权限必须大于等于父类

四,子类继承后构造器的特点

这是为什么呢?(先有爸再有儿子)
子类在初始化的时候可能会用到父类的数据,如果这时父类的数据并没有完成初始化,那么子类就无法使用父类的数据


this调用本参数构造器
如我们让用户填写个人信息年纪不填写时默认给18
public Student(String name){
this(name,"18");
}

上一篇 下一篇

猜你喜欢

热点阅读