课时57 | 接口的概念和作用

接口语法:

  1. 接口中只能包含静态常量,抽象方法。
  2. Java接口是对功能的扩展;
  3. 通过实现接口,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();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值