属性私有(private)
子类继承父类就拥有父类的全部方法.
私有的属性无法继承
就是在方法名和属性名相同时,在子类里使用
super.属性名方法名
采用的是父类里面的属性和方法.
没有super当前缀时采用的是当前子类的属性和方法
私有的东西无法被继承,也无法用super访问.
当创建无参构造器时,子类和父类都有无参构造器时执行子类的无参构造器,默认会先执行父类的无参构造器
隐藏代码:调用父类的无参构造器,必须放在子类构造器的第一行
一个构造函数中不能同时出现this和super两种方法是因为this函数中也有super,这会导致初始化两次,数据不安全
若父类只有含参构造器,没有写无参构造的话,在子类无参构造中想要不报错,就得显示调用父类含参构造
Vs This
代表对象不同
this 本身调用这个对象
super 代表父类对象的应用
前提
this 没有继承也可以使用
super 只能在继承条件才可以使用
构造方法
this();本类的构造
super();父类的构造
private : Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。
default: 即不加任何访问修饰符,通常称为“默认访问权限“或者“包访问权限”。该模式下,只允许在同一个包中进行访问。
protected: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护访问权限”。被其修饰的属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包访问。
原文链接:https://blog.csdn.net/VariatioZbw/article/details/107126074
重写是方法的重写和属性无关
子类可以转成父类,但父类不能转成子类
Student stu = new Student();
override 重写
方法名必须相同
参数列表必须相同
修饰符,范围可以扩大但不能缩小.
public>protected>default>private
抛出异常:范围:可以被缩小但不能扩大;ClassNotFoundException-->Exception(大)
重写子类方法和父类方法名必须一致,方法体不同.
为什么需要重写:
Alt+Insert override
即同一方法可以根据发送对象的不同而采用多种不同的行为方式
一个对象的实际类型是确定的,但可以指向的对象的引用的类型很多
多态存在的条件
注意: 多态是方法的多态,属性没有多态性.