3.10学习

1,覆盖方法是实例方法,并且不能降低访问权限。(子类从父类继承的)

2,子类中也可以改写夫类中的数据成员和静态方法,这个叫成员隐藏。

3,实例方法中可以用super访问父类中的方法super.fun();

4,方法覆盖是为多态服务的

5,希望父类中的方法不被子类中写的覆盖(方法,类(不让它派生子类),成员),那怎么弄呢!  final关键字!

但是final修饰的方法在子类中是可以重载的。

6,用final修饰数据成员的话,系统不会为它提供默认值。

7,final修饰形参的话。。能访问不能改变??

8,final修饰静态变量,要么定义的同时复制,要么在静态初始化块中

9,final修饰实例变量,后面一样,特殊在于可以在构造方法中初始化。

但是少用,因为实例变量本来就是对象的一个属性,如果全不变的话,还不如整个公用的工具。

10,构造方法不可以被final修饰。

同时私有方法不能被覆盖。

11,final修饰类中的方法是final的(可以不写final),但是类里面的成员不一定是final

12,对象类型可以进行转换,但是得在继承链中。有自动转换(子类转父类)和强制转换(特殊情况。。比如你明确知道它是圆形,也就是你明确知道一个父类对象就是一个子类对象时)

13,类型检验运算符,instanceof,运算结果是布尔型,为了父类子类类型转换不出错。

14,多态指的是程序在运行时判断执行那个代码块的能力。

前提是由继承,父类和子类中要有方法覆盖。测试类中方法参数类型要是父类的。

多态由动态绑定实现的,动态绑定指程序在运行时根据对象的实际类型来调用方法。

而静态绑定是你程序的方法在编译时候确定的

15,抽象方法和抽象类。

抽象方法只有方法头,没有方法体。

而含有抽象方法的类是抽象类。

同时一定要加 abstract

原文地址:https://www.cnblogs.com/beiyueya/p/12454577.html