一、复习Java继承有关知识
getset的快捷键:alt+insert
查看继承树的快捷键:ctrl+H
在所有类中,都直接或间接继承object类
私有的无法被继承!
super与this的示范:
(1)测试父类和子类的属性:
private String name = "LiuHangming";
public void test (String name){
System.out.println(name); //刘航名
System.out.println(this.name); //LiuHangming
System.out.println(super.name); //PDG
}
(2)测试父类和子类的方法:
public void print(){
System.out.println("I am Student!");
}
public void test1(){
print(); //I am Student!
this.print(); //I am Student!
super.print(); //I am Person!
}
(3)测试父类和子类的无参构造:
父类的无参构造:
public review_Inherit_people(){
System.out.println("Person无参执行了!");
}
子类的无参构造:
public review_Inherit_student() {
//隐藏代码:调用了父类的无参构造
super();//调用父类的构造器,必须在子类的第一行
System.out.println("Student无参执行了!");
}
}
结果:
Person无参执行了!
Student无参执行了!
二、复习方法重写
重写和静态方法无关、只和非静态方法有关。
(1)静态情况:
A:
public static void test_A(){
System.out.println("A=>test");
B:
public static void test_B(){
System.out.println("B=>test");
}
review_Rewrite_A A = new review_Rewrite_A();
A.test_A(); //A
//父类的引用指向子类
review_Rewrite_B B = new review_Rewrite_A();
B.test_B(); //B
(2)非静态情况:
A:
@Override
public void test() {
System.out.println("A=>test");
}
B:
public void test(){
System.out.println("B=>test");
}
review_Rewrite_A A = new review_Rewrite_A();
A.test(); //A
//父类的引用指向子类
review_Rewrite_B B = new review_Rewrite_A();
B.test(); //A
问题:在使用Override的时候,重写页面找不到B类
解决:把B中的statics删掉即可。
反思:因此印证重写和静态方法无关。