接口
Java的接口就好像是100%的纯抽象类
所有接口的方法都是抽象的,所以任何Pet的类都必须要实现这些方法

接口的定义:
public interface Pet{...} // 使用interface代替class
接口的实现:
public class Dog extends Canine implements Pet{...}
使用implements这个关键词.注意到实现interface时还是必须再某个类的继承之下
设计接口与实现
接口方法带有public和abstract的意义,这两个修饰符是属于选择性的(这里打出来是为了强调才打出来,实际上不需要)
public interface Pet {
// 接口方法一定是抽象,所以必须以分号结束.记住他们没有内容
public abstract void beFriendly();
public abstract void play();
}
public class Dog extends Canine implements Pet {
// 必须在这里实现出Pet的方法,这是合约的规定
public void beFriendly() {...}
public void play() {...}
// 一般的覆盖方法
public void roam() {...}
public void eat() {...}
}
类可以实现多个接口
通过继承结构,Dog对象IS-A Canine, IS-A Animal, IS-A Object.但是Dog IS-A Pet是通过接口实现的机制达成的,并同时也能够实现其他的接口:
public class Dog extends Animal implements Pet, Saveable,paintable { }
extend只能有一个,implement可以有多个
要如何判断应该是设计类,子类,抽象类或者接口??
- 如果新的类无法对其他的类通过IS-A测试时,就设计不继承其他类的类
- 只有在需要某类的特殊化版本时,以覆盖或增加新的方法来继承现有的类
- 当你需要定义一群子类的模板,又不想让程序员初始化此模板时,设计出抽象的类给他们用
或增加新的方法来继承现有的类 - 当你需要定义一群子类的模板,又不想让程序员初始化此模板时,设计出抽象的类给他们用
- 如果想要定义出类可以扮演的角色,使用接口
319

被折叠的 条评论
为什么被折叠?



