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