面向对象(八)——接口

上节课我们学习了抽象类,那么这节课我们来学习下接口

 

什么是接口?

       可以理解为一个低配版的可多继承的抽象类

 

接口的特征:

       由interface声明

       可以被多继承

       只能声明静态常量和抽象方法

       声明的所有方法默认为 public abstract

       类继承(实现)接口需要用implements关键字

       实体类继承(实现)接口必须重写(实现)接口内声明的所有方法

       抽象类继承(实现)接口可以选择性的重写(实现)接口内声明的所有方法

 

接口的作用:

       和抽象类作用类似,只不过接口可以被多继承

 

注意:

       接口继承接口依然使用extends关键字,接口可以继承多个接口

 

Demo:

 

public class InterfaceTeach {

    public static void main(String[] args) {
        CanFly bird = new Pemguin();
        System.out.println(bird.canFly());

        CanSwim bird2 = new Woodpecker();
        System.out.println(bird2.canSwim());

        //接口类引用变量依然可以指向它的实现类对象

        //接口也可以通过匿名内部类的方式new出对象
        CanFly canFly = new CanFly() {
            @Override
            public boolean canFly() {
                return true;
            }
        };
        System.out.println(canFly.canFly());

    }
}

//换个例子

interface CanFly{
    boolean canFly();
}

interface CanSwim{
    boolean canSwim();
}

//继承(实现)多个接口
abstract class Bird implements CanFly,CanSwim{

}

//企鹅
class Pemguin extends Bird{

    @Override
    public boolean canFly() {
        return false;
    }

    @Override
    public boolean canSwim() {
        return true;
    }
}

//啄木鸟
class Woodpecker extends Bird{

    @Override
    public boolean canFly() {
        return true;
    }

    @Override
    public boolean canSwim() {
        return false;
    }
}

             

猜你喜欢

转载自blog.csdn.net/qq_40061421/article/details/82897615
今日推荐