重载(overload)
重载要遵守的规则:
- 方法名称一定要一样. 不一样的话,就是两个不同的方法, 不能称为重载
- 传入的参数类型一定要不一样. 因为计算机需要用参数类型来判断是调用哪一个方法
遮蔽(shadow)
在对象继承的过程中, 在子类中可以直接使用从所继承下来的属性和方法,就如自己的一样. 但是如果在子类中又声明了相同名称的属性的话, 那么当你直接使用时,就是使用自己的属性,而不是自父类的属性了. 这种情形称之为遮蔽(shadow).
public class A {
int i=10;
public A() {
System.out.println(i);
}
}
class B extends A{
int i=5;
public B(){
System.out.println(i);
}
}
使用方式 | 代表意义 |
i | B类中的i属性 |
this.i | B类中的i属性 |
super.i | A类中的i属性 |
((B)this)i | B类中的i属性 |
((A)this)i | A类中的i属性 |
改写(overiide)
要遵守的一些规定
- 方法名称一定要一样.不一样的话,主浊两个不同的方法, 不能称为改写
- 返回值数据类型要一样. 不一样的话,就是重载而不是改写
- 所使用的参数要一样. 包括参数个数和每个参数的数据类型. 不一样的话,就是重载而不是改写
- 修饰符的使用权限只能越开放,不能越封闭
- 不可丢出原有方法丢出异常类的或上层类
- 丢出的异常类数目不可以比原有的方法丢出的还多