继承重写等知识点

只要是子类中可以访问的父类的成员,都可以被子类继承

1、方法重写应注意的问题:

1)权限修饰符:子类应该大于等于父类(private default protected public)

即子类覆盖父类的方法应该更无私。

2)返回类型:如果是基本数据类型  子类父类必须一致。引用数据类型:子类重写方法的返回值类型可以是父类返回类型的子类。

3)方法名:必须相同

4)参数列表:必须相同  实现的功能不同 覆盖父类的方法。否则是犯法重载。因为继承中,子类相当于拥有父类的这个方法。

5)方法抛出的异常:子类小于等于父类的异常。

6)方法体:和父类不同


静态方法:可以被继承 但不能被重写。在子类中写了一个和父类相同的方法,相当于重新定义了一个,不属于重写。因为静态方法依赖于类。


super:

1、在子类中用来访问父类定义的成员

2、默认存在于子类构造方法的第一句,调用父类的构造方法。会一直往上调用。(显示或者隐式调用)


生成子类对象的过程:

1、先类加载,从上到下 从最开始的父类到子类一次加载,加载过程中,为静态变量分配空间,执行静态代码块

按照继承关系链,从上到下依次 执行2-4

2、在堆中 为实例变量(非静态的)分配空间,进行默认初始化

3、执行实例变量声明处的赋值。

4、执行构造方法中的代码

5、构造方法返回 使用new 关键字 将对象的引用带回。


子类对象和父类对象之间的关系:

子类对象包换父类中定义的所有的实例变量,不管是私有的还是共有的,只不过私有的没有访问权限。

子类对象的父类以及以上父类的所有成员变量,在子类中都会进行空间的分配。




你可能感兴趣的:(继承,java)