继承相关问题
继承相关问题
参考黑马程序员
继承中构造方法的访问特点
子类中所有的构造方法默认都会访问父类中无参的构造方法
为什么呢?
-
因为子类会继承父类中的数据,可能还会调用父类的数据。所以,子类初始化之前,一定要先完成父类数据的初始化
-
每一个子类构造方法的第一条默认语句都是super()
如果父类中没有无参构造方法,只有带参构造方法,该怎么办?
-
通过使用super关键字去显示的调用父类的带参构造方法
-
在父类中自己提供一个无参构造方法
推荐:自己给出无参构造方法
方法重写注意事项
-
方法名和参数列表必须相同
-
私有方法不能被重写(父类私有成员子类是不能继承的)
-
子类方法访问权限不能更低(public>默认>私有)
-
Alt + Insert: @override
修饰符
| 修饰符 | 同一个类中 | 同一个包中子类、无关类 | 不同包的子类 | 不同包的无关类 |
|---|---|---|---|---|
| private | √ | |||
| 默认 | √ | √ | ||
| protected | √ | √ | √ | |
| public | √ | √ | √ | √ |
final
final关键字是最终的意思,可以修饰成员方法,成员变量,类
final修饰的特点
-
修饰方法:表明该方法是最终方法,不能被重写
-
修饰变量:表明该变量是常量,不能再次被赋值
-
修饰类:表明该类是最终类,不能被继承
final修饰局部变量
-
变量是基本类型:final修饰指的是基本类型的数据值不能发生改变
-
变量是引用类型:final修饰指的是引用类型的地址值不能发生改变,但是地址里面的内容是可以发生改变的
static
static关键字是静态的意思,可以修饰成员方法,成员变量
static修饰的特点
-
被类的所有对象共享
这也是我们判断是否使用静态关键字的条件
-
可以通过类名调用
当然,也可以通过对象名调用
static访问特点
非静态的成员方法
-
能访问静态的成员变量
-
能访问非静态的成员变量
-
能访问静态的成员方法
-
静态的成员方法
-
能访问静态的成员变量
-
能访问静态的成员方法
总结成一句话就是:静态成员方法只能访问静态成员

浙公网安备 33010602011771号