访问修饰符
private: | 默认 | public | protected |
---|---|---|---|
变量、方法 | 类、变量、方法 | 类、变量、方法 | 变量、方法 |
本类 | 同一个包 | 任何地方 | 同一个包,不同包(继承关系) |
变量的使用,从小往大的方向找,大的必须包含小的。
——————————————————————————————
方法重写
继承关系: 父类和子类的方法名相同,参数列表相同(个数、顺序、类型都相同),方法的返回类型相同(如果是继承关系,子类的 方法的类型 要小于等于<=父类的)
子类方法的访问修饰符一定要 >=(大于等于) 父类
异常: 子类方法的异常(非运行时异常)<=(小于等于) 父类
为什么进行重写
扩展父类的方法的功能
私有方法不能被重写
继承关系中构造方法的调用规则
1子类创建对象时,总是默认调用父类无参的构造方法
2如果父类没有无参的构造方法,使用super()调用指定的构造方法
class A{ int x; int y;
publilc A(int x,int y){ …(“A”); } }
class B extends A{
public B(int x,int y){
super.(x,y); …(“B”); }
} B b =new B(1,2);
…为system.out.println省略
构造方法练习
class MyClass{
int value;
}
public class TestMyClass{
public static void main(String args[]){
MyClass mc1 = new MyClass();
MyClass mc2 = new MyClass(10);
System.out.println(mc1.value);
System.out.println(mc2.value);
}
}
构造方法的调用
class Super{
public Super(){
System.out.println("Super()");
} Super() Sub()
public Super(String str){
Super() Sub() Sub(int)
System.out.println("Super(String)"); Super(String) Sub(String)
}
}
class Sub extends Super{
public Sub