接口(interface):实例化时要覆盖所有抽象方法,否则仍为抽象类
发布日期:2021-05-08 23:17:09 浏览次数:18 分类:博客文章

本文共 2175 字,大约阅读时间需要 7 分钟。

概述

 

 

 

 

 

/*

* 接口的使用
* 1.接口使用interface来定义
* 2.Java中,接口和类是并列的两个结构
* 3.如何定义接口:定义接口中的成员
*
* 3.1 JDK7及以前:只能定义全局常量和抽象方法
* >全局常量:public static final的.但是书写时,可以省略不写
* >抽象方法:public abstract的
*
* 3.2 JDK8:除了定义全局常量和抽象方法之外,还可以定义静态方法、默认方法(略)
*
* 4. 接口中不能定义构造器的!意味着接口不可以实例化
*
* 5. Java开发中,接口通过让类去实现(implements)的方式来使用.
* 如果实现类覆盖了接口中的所有抽象方法,则此实现类就可以实例化
* 如果实现类没有覆盖接口中所有的抽象方法,则此实现类仍为一个抽象类
*
* 6. Java类可以实现多个接口 --->弥补了Java单继承性的局限性
* 格式:class AA extends BB implements CC,DD,EE
*
* 7. 接口与接口之间可以继承,而且可以多继承
*
* *******************************
* 8. 接口的具体使用,体现多态性
* 9. 接口,实际上可以看做是一种规范
*
* 面试题:抽象类与接口有哪些异同?
*
*/

 

public class InterfaceTest {    public static void main(String[] args) {        System.out.println(Flyable.MAX_SPEED);        System.out.println(Flyable.MIN_SPEED);//        Flyable.MIN_SPEED = 2;                Plane plane = new Plane();        plane.fly();    }}interface Flyable{        //全局常量    public static final int MAX_SPEED = 7900;//第一宇宙速度    int MIN_SPEED = 1;//省略了public static final        //抽象方法    public abstract void fly();    //省略了public abstract    void stop();            //Interfaces cannot have constructors//    public Flyable(){//        //    }}interface Attackable{        void attack();    }class Plane implements Flyable{//【实现】了接口中的两个抽象方法    @Override    public void fly() {        System.out.println("通过引擎起飞");    }    @Override    public void stop() {        System.out.println("驾驶员减速停止");    }    }abstract class Kite implements Flyable{    @Override    public void fly() {            }    }class Bullet extends Object implements Flyable,Attackable,CC{    @Override    public void attack() {        // TODO Auto-generated method stub            }    @Override    public void fly() {        // TODO Auto-generated method stub            }    @Override    public void stop() {        // TODO Auto-generated method stub            }    @Override    public void method1() {        // TODO Auto-generated method stub            }    @Override    public void method2() {        // TODO Auto-generated method stub            }    }//************************************interface AA{    void method1();}interface BB{        void method2();}interface CC extends AA,BB{    }

 

上一篇:抽象接口USB的实例化
下一篇:抽象类的例子

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月22日 18时47分45秒