方法重写....跟方法重载差不多,但是跟重载的区别:1.不同类中 2.方法名和参数都一致
方法重写规则:方法名,参数列表相同,访问权限不能严与父类。不能通过继承或者方法重写方法单一改变成静态或者非静态。
继承:
不能继承父类private的属性的参数,不能继承父类的构造方法,但是可以调用父类的构造方法!
object类是一切类的祖宗。java里面只支持单根继承。一个类只能有一个直接继承,但是可以有无数个间接继承。
super关键字:一个super关键字可以调用所有父类(包括间接继承的)继承下来的方法及变量。要使用super必须在继承状态下。
super() →访问父类构造方法
super.变量→访问父类成员属性
super.方法名()→访问父类普通方法
在子类用super调用父类的构造方法只能在方法的第一句且只能调用一种构造方法!
super跟this一样无法在静态中使用。因为他们必须要有对象。
方法重写规则:方法名,参数列表相同,访问权限不能严与父类。不能通过继承或者方法重写方法单一改变成静态或者非静态。
继承:
不能继承父类private的属性的参数,不能继承父类的构造方法,但是可以调用父类的构造方法!
object类是一切类的祖宗。java里面只支持单根继承。一个类只能有一个直接继承,但是可以有无数个间接继承。
super关键字:一个super关键字可以调用所有父类(包括间接继承的)继承下来的方法及变量。要使用super必须在继承状态下。
super() →访问父类构造方法
super.变量→访问父类成员属性
super.方法名()→访问父类普通方法
在子类用super调用父类的构造方法只能在方法的第一句且只能调用一种构造方法!
super跟this一样无法在静态中使用。因为他们必须要有对象。
区别 | this | super |
访问属性 | 访问本类属性如果没有则从父类找 | 访问父类中的属性 |
访问方法 | 访问本类方法如果没有则从父类找 | 访问父类中的方法 |
访问构造 | 调用本来构造放在构造方法首行 | 调用父类构造,放在子类构造方法首行 |
作用域\修饰符 | 同一个类中 | 同一个包中 | 子类中 | 任何地方 |
private | 可以 | 不可以 | 不可以 | 不可以 |
默认修饰符 | 可以 | 可以 | 不可以 | 不可以 |
protected | 可以 | 可以 | 可以 | 不可以 |
public | 可以 | 可以 | 可以 | 可以 |