1 java 权限修饰符
从小到大
private 只有类中能用
缺省,类,同一个包中能用
protected,类,同一个包中能用,以及不同包中的子类可以使用
public:公共的,都可以使用,同一个工程下。
2 java 继承的应用
1 减少了代码的冗余
2 便于扩展功能
3 为多态提供支持
父类中声明为私有的属性或者方法,子类继承父类以后,仍然认为
获取了父类中中似有的结构,只是因为封装性的影响,使得子类
不能直接调用父类的结构而已。
3 super调用构造器
1。我们可以在子类的构造器中显式的使用 super()的方式 调用父类中声明的指定构造器
2。super(形参列表) 的使用,必须在子类构造器的首行。
3。我们在类的构造器中,针对 this(形参列表) 或者 super(形参列表) 只能二选一,不能同时出现,
4。在构造器的首行,没有显式的声明 this()或者super() 则默认调用的是父类中空参的构造器
5。在类的多个构造器中,至少有一个类的构造器使用了 super()调用父类的构造器。
4 字类对象实例化的过程
5 java 多态性
1 何为多态性
: 父类的引用指向了字类的对象,(或者,子类的对象指向父类的引用)
2 多态的使用:虚拟方法的调用
有了对象的多态性以后,我们在编译期间,只能调用父类中的方法,但是在运行期间
,我们实际执行的是子类重写父类的方法,
总结: 编译看左边,运行看右边,
注意: 多态创建的对象,是不能调用子类特有的方法的,因为在编译期间当作是父类的对象。
3 :多态性的使用前提
1 类的继承关系
2 方法的重写。
4 : 多态性的好处?
可以减少代码的重复,是代码更规范,
5 :多态性只适合用于 方法,不适合用于 属性(编译和运行都看左边)
6,有了对象的多态以后,内存中实际上是加载了子类特有的属性和方法的,但是由于
变量声明为父类类型,导致编译时,只能使用父类声明的方法和属性,子类特有的方法和属性不能调用。
7 :如何调用子类的特有方法和和属性?
向下转型(强制类型转换),使用强转可能出现异常,在强转时,判断。关键字 instance of
8 : 1 若子类重写了父类方法,就意味着子类里定义的方法彻底的覆盖了父类的同名方法,系统将不可能把父类里的方法转移到子类只去。
2 对于实例变量则不存在这样的现象,即使子类里定义了与父类完全相同的实例变量,这个实例变量依然不可能覆盖父类中的定义的
实例变量:编译看左边,运行看右边。
9: 多态时编译时行为,还是运行时行为?
运行时行为。
10 ,知识点,如下代码方法中,认为是一样的会报错,,如果其中一个方法在父类中,则认为子类重写了父类的方法。
// 父类 class Demo{ public void add(int a,int ...arr){ } } class Demo2 extends Demo{ // 认为重写了父类中的方法 public void add(int a ,int [] arr){ } }