Re: [問題] 繼承、界面、抽象

作者: MephistoH (默非斯托)   2015-04-08 08:18:49
※ 引述《a07051226 (葡萄糖)》之銘言:
: 那我大概知道interface跟abstract的差異
: 以下是我的理解,有誤請訂正
: abstract是被class extends過去,所以屬繼承,所以可以加新方法 ,而且必須所有方法
: 都實作出來
: (精華區那個忘記動物叫的例子)
: interface是被class implements,所以只能實作interface的方法,不能新增方法
: 還有一個問題
: 因為兩者都提供方法而不實作
: 我看書上範例
: 把方法重新打過一次
: 那用interface去implement跟直接打與什麼差異?
: 只是compiler會幫你檢查而已?
一定會有的 動作 , 就寫在abstract class 裡, 不一定會有的動作,就寫在 interface

例如
interface bark{
public void 叫();
}
abstract class 動物{
public void 叫{
System.out.println("XD");
}
}
class dog extends 動物 implements bark{
System.out.println("汪");//實作介面的叫
}
class cat extends 動物 implements bark{
System.out.println("喵");//實作介面的叫
}
========
動物會叫, 但各有各的叫法
在叫的時候, 就用介面~
"其實abstract class表示的是"is a"關係,interface表示的是"like a"關係

Links booklink

Contact Us: admin [ a t ] ucptt.com