Shell程式設計之備份資料庫
阿新 • • 發佈:2021-06-17
向上轉型和向下轉型
相同點:
如果子類重寫了父類的方法,呼叫的是子類中重寫的方法。
不同點:
向上轉型只能呼叫與父類引用中父類相同的方法,不能呼叫子類自定義方法;
向下轉型可以呼叫父類的方法,也能呼叫子類自定義方法;
public class test01 {
public static void main(String[] args) {
//向上轉型
Parent p=new Children();
p.eat();
p.sleep();
//p.play();不能通過編譯
//向下轉型
Children c=(Children) p;
c.sleep();
c.sleep("hi");
c.play();
}
}
class Parent {
//定義兩個方法
public void sleep(){
System.out.println("Parent.sleep");
}
public void eat(){
System.out.println("Parent.eat");
}
}
class Children extends Parent {
//過載父類sleep()方法
public void sleep(String str){
System.out.println(str+",Children.sleep");
}
//重寫父類sleep()方法
結果:
Parent.eat
Parent.sleep
Children.sleep
Parent.sleep
Children.sleep
hi,Children.sleep