Java学习笔记-接口2

这里写图片描述

class InterfaceDemo2{
    public static void main(String[] args){
         Jing8 jing8=new Jing8;
         jing8.shout();
         Eater e1=new Eater();
              e1.eat(jing8);     //传入的jing8必须是Eatable的对象,所以类Jing8必须实现Eatable接口
         RichMan r1=new RichMan();
              r1.meng(jing8);    //传入的jing8必须是Pet的对象,所以类Jing8必须实现Pet接口
    }
}
abstract class Animal{
    public abstract void shout();  //抽象方法的方法体只有分号
}
class Dog extends Animal{
    void shout(){
        System.out.println("汪汪!");
    }
}
class Jing8 extends Dog implements Eatable,Pet{   //类Jing8实现Eatable和Pet接口
    public void eat(){
        System.out.println("味道很好!");
    }
    public void meng(){
        System.out.println("很萌!");
    }
} 
interface Eatable{         //定义Eatable接口
    public void eat();    
}
class Eater{
    public void eat(Eatable e){   //这里注意传入的参数类型是Eatable
        System.out.println("食物就绪了!") ;
    }
    e.eat();    //调用接口中的eat()方法,此方法在类的实现中重写
}
interface Pet{   //定义Pet接口
    public void meng();
}
class RichMan{
    public void feed(Pet p){    //这里注意传入的参数类型是Pet
         p.meng();   //调用接口中的meng()方法,此方法在类的实现中重写
    }
}
输出结果:汪汪!
        食物就绪了!
        味道很好!
        很萌!

总结接口与抽象类的异同:
共性:都是不断抽取出来的抽象的概念。
区别:1、抽象类体现继承关系,一个类只能单继承;而接口体现实现关系,一个类可以多实现。
2、抽象类是继承,是“is a”关系;接口是实现,是“like a”关系。
3、抽象类中可以定义非抽象方法,供子类直接使用;接口中的方法都是抽象方法,接口中的成员都有固定修饰符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值