继承概述
在编程语言中,继承指的是子类继承父类的属性和行为,继承能够提高我们代码的复用性,减少代码的冗余。
语法格式
Java 提供了 extends 关键字用于继承。
public class 父类 {
//...
}
public class 子类 extends 父类 {
//...
}
子类不能继承的内容
子类不能继承父类的构造方法,因为构造方法的方法名要求和类名一致。
父类中私有成员子类可以继承,只是无法直接访问,可以间接访问(通过 getter & setter)。
继承后成员访问的特点
成员变量
不同名,没有任何影响
同名,优先访问的是子类的成员变量,要想访问到父类的成员变量,需要使用 super 关键字进行访问。
成员方法
不同名,没有任何影响
同名,子类覆盖了父类的访问,这种现象我们称之为访问的重写
方法重写
指的是在子父类中出现了一模一样的方法,此时子类的方法会覆盖父类的方法,执行的时候以子类为准。
\@Override 注解,作用是在编译期检查方法是否符合重写规范,如果不符合,编译器会报错。
构造方法
子类虽然不能继承父类的构造方法,但是可以调用的,调用父类的构造方法是为了初始化父类的数据。
要调用父类的构造方法,使用 super(参数),要调用自己的构造方法,使用 this(参数)
单继承
Java 只支持单继承,不支持多继承,支持多层继承。
单继承指的是一个类只能有一个父类,但一个类可以有多个子类。
抽象类和抽象方法的概述
在某些特定的时刻,一个类中的某个方法,被它所有的子类都重写了,那么我们认为这个方法的方法体就失去了意义。
虽然方法体失去了意义,但是方法签名任然有用,作用是规范子类。
Java 允许一个方法没有方法体,只有方法的签名。这种方法叫做抽象方法,但是抽象方法必须要写在抽象类中。
抽象类和抽象方法的定义
Java 提供了一个关键字 abstract 用于定义抽象。
//抽象类的定义
public abstract class 类名 {
//抽象方法的定义
public abstract 返回值类型 方法名(形参列表...);
}
注意:抽象方法不能被定义成私有的!!!
注意事项:
- 抽象类不能创建对象
- 子类继承了抽象父类,必须要将父类中所有的抽象方法全部重写
- 抽象类中可以有构造方法,作用是初始化抽象类中的成员变量
- 抽象类中可以没有抽象方法,但是有抽象方法的类,一定是抽象类
抽象类的意义
抽象类存在的意义就是给子类继承。
模板设计模式
什么是模板设计模式
定义一个算法的骨架,具体的操作可以延迟到子类中实现。
final 关键字
final 表示的是最终的,不可改变的,可以用于修饰类、方法、变量
修饰类:
被 final 修饰的类不能被其他类继承(不能有子类)
修饰方法:
被 final 修饰的方法不能被子类重写
修饰变量:
被 final 修饰的变量就是常量
局部变量
- 基本数据类型:不能重新赋值
- 引用数据类型:不能改变地址值
成员变量
- 必须在对象使用之前完成初始化
- 直接初始化
- 构造初始化
继承、抽象类、模板设计模式、final关键字
最新推荐文章于 2025-12-17 19:02:04 发布
本文介绍了Java中的继承机制,包括语法、限制和特点,重点讲解了抽象类、抽象方法的概念,以及方法重写和final关键字的应用。通过实例演示了如何利用模板设计模式提升代码复用,并强调了抽象类在子类设计中的角色。
452

被折叠的 条评论
为什么被折叠?



