作者MephistoH (默非斯托)
看板java
标题Re: [问题] 继承、界面、抽象
时间Wed Apr 8 08:18:49 2015
※ 引述《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"关系
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.35.194.5
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1428452331.A.E4C.html