接口语法:
- 接口中只能包含静态常量,抽象方法。
- Java接口是对功能的扩展;
- 通过实现接口,Java类可以实现多实现;
4.一个类可以同时继承(extends)一个父类,并且实现(implements)多个接口;
5、接口与接口之间可以使用extends实现继承关系。
接口与抽象类的区别:
1.抽象类和具体实现类之间是一种继承关系,也就是说,如果采用抽象类的方式,则父类和子类在概念上应该是相同的;
2. 接口和实现类在概念上不要求相同,接口只是抽取相互之间没有关系的类的共同特征,而不去关注类之间的关系,它可以使没有层次关系的类具有相同的行为;
3. 抽象类是对一组具有相同属性和行为的逻辑上有关系的事物的一种抽象,而接口则是对一组具有相同属性和行为的逻辑上不相关的事物的一种抽象;
4.抽象类用于一组相关的事物,表示的是“”is-a“”的关系;接口用于一组不相关的事物,表示的事“”like-a“”的关系。
interface IAbility{
/*public static final*/ int number=1;
/*public abstract*/ //void show();
void eat();
}
class Child implements IAbility{
public void eat(){
System.out.println("Drinking Milk");
}
}
class Dog implements IAbility{
public void eat(){
System.out.println("Eating bones");
}
}
因此,在Person()类里,可以把feed child和feed dog抽象成一个接口,具体实现,则放在child和dog类中
注意:
- 接口的引用变量可以引用其实现类的对象;
- 抽象类的引用变量可以引用其实现类(子类)的对象;
- 父类的引用变量可以引用其实现类的对象。
class Person{
/*
public void feed(Child child){
child.eat();
}
public void feed(Dog dog){
dog.eat();
}
*/
//Implement an ability that child and dog both share
public void feed(IAbility ability)
{
ability.eat();
}
}