开发环境
基于:JDK1.8
官人如需使用 IDEA 请阅读教程:IntelliJ IDEA
官人如需使用 Maven 请阅读教程:Maven 构建工具的下载与安装
更多干货
请参考:《穿越 Java 之 语法基础篇》 系列文章
请参考:《穿越 Java 之 Web基础篇 》系列文章
请参考:《穿越 Java 之 开发必备框架篇 》 系列文章
请阅读:《穿越 Java 之 SpringBoot框架篇》系列文章
请阅读:《穿越 Java 之 SpringCloud微服务架构篇》 系列文章
格式
class 子类 extends 父类{
}
作用
-
提高代码的复用性
-
分析出共同点 然后将相同的逻辑定义在一个类中(父类)
-
提高代码的可维护性
-
通过继承, 父类与子类之间产生了关系,这个关系是多态的前提。
特点
-
1.Java中只支持单继承
一个类中最多只有一个父类 -
2.多个类可以继承一个父类
-
3.Java支持多层继承(比如父类为 class p{} 子类class A extends p 孙子类class B extends A)
-
4.继承只能继承父类中的非私有的成员. 默认访问的是子类中的成员变量 (即私有的成员变量、私有的成员方法不能被继承)
-
5.子类不能继承构造方法 即 构造方法不能被继承
子类必须通过 super 关键字来调用父类的构造方法。一旦发生了继承,Java中子类中都 隐调 父类的公共 的无参 构造方法super()。
如果父类中不存在 公共无参构造方法 默认继承会报错。 且此时子类必须明确 在构造方法中使用 super(xxx)来调用父类特定的构造方法。 -
6.不要为了继承而继承
当问题中出现 is a 的关系时,考虑用继承
继承中构造方法的细节
-
1.子类中的所有构造方法都默认会访问父类的公共无参的构造方法。
-
2.其实子类中所有的构造方法的第一条指令 ,默认都是super()
-
3.如果父类中不存在 公共无参构造方法 默认继承会报错。 且此时子类必须明确 在构造方法中使用 super(xxx)来调用父类特定的构造方法。且必须是第一条指令。
-
4.当配合this()使用时 是特例。但是不管是this还是 super必须是构造方法中的第一条指令。
继承中成员方法的细节
-
1.当子类中不存在某些成员方法时,会自动从父类中获取。
-
2.如果子类中存在与父类非私有的方法名和参数列表相同的方法 要求:
返回值值必须一样。 权限修饰符要求子类不能比父类更小。(这就是方法重写)
方法重写的应用点
-
1.子类要实现父类的某些功能
-
2.子类要扩展父类的某些功能,配合 super.父类方法名()来扩展
-
3.当父类中有静态方法时,如果子类想重写,要求子类的方法签名和父类一致。
继承中成员变量的关系
-
1.当子类中的成员变量和父类中的非私有的成员变量同名时,默认访问的是 子类中的成员变量
-
2.如果确实要访问 父类的,则需要配合 super 关键字。即当子类的成员变量和父类继承下来的成员变量重名时,使用super 区分。