1.为什么要使用继承
多类之间拥有相同的属性或是方法;解决方式是将相同的属性和方法抽取出来封装到一个新的类中,并继承新的类。
2.继承语法
A extends B
如果A extends B 得出结论;A是B的子类;B是A的父类
java中一个类只能继承一个父类(单继承关系)
继承的关键字是extends
3.super
super调用父类的成员
规范:
super只能出现在子类的方法和构造中
super调用构造方法是,只能是第一句
super不能访问父类的private成员
name=super.name;调用属性
super();调用方法
super(a);调用有参方法
修饰符:
private 默认 protected public
(1)private 默认 protected public修饰的属性都可以在本类(class)中访问
(2)在同包不同类的情况下private(封装中的隐藏修饰符)修饰的属性不可以被访问,其余三者可以访问。
(3)在不同包但属于父子类关系的情况下;private,默认修饰的属性不能访问,其他两个可以访问。
(4)在不同包也不属于父子类关系,只有public修饰的属性可以访问
继承初始化顺序
父类属性初始化》父类的构造器(方法)初始化》子类的属性初始化》子类的构造器(方法)初始化
子类的构造器中默认有一个调用父类构造器的super();
重写:
规范
方法名相同;
参数列表相同;
返回值类型相同或者是其子类;
访问权限不能严于父类;
方法重载和方法重写的区别:
位置 方法名 参数表 返回值 访问修饰符
方法重写 子类 相同 相同 相同或是其子类 不能严于父类
方法重载 同类 相同 不相同 无关 无关
构造方法不能被重写
抽象:
抽象类的关键字是abstract
抽象类的特点是不能实例化
抽象方法的特点没有方法体
抽象类中可以有非抽象方法
抽象方法:
1.抽象方法没有方法体
public abstract void eat();
2.抽象方法必须在抽象类里
public abstract class Demo{}
3.抽象方法必须在子类中实现,除非子类是抽象
final :
修饰类;特点:不能被继承
修饰方法;特点:不能被重写
修饰属性;特点:不能被二次赋值
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决