千家信息网

Java中的抽象类和接口实例分析

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了Java中的抽象类和接口实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java中的抽象类和接口实例分析文章都会有所收获,下面我们一起来看看吧。抽
千家信息网最后更新 2026年11月02日Java中的抽象类和接口实例分析

这篇文章主要介绍了Java中的抽象类和接口实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java中的抽象类和接口实例分析文章都会有所收获,下面我们一起来看看吧。

    抽象类

    什么是抽象类?

    类和类之间有共同特征,将这些共同特征提取出来进一步抽象,就形成了抽象类。由于类是不存在的,所以抽象类无法创建对象。

    抽象类属于什么类型?

    抽象类也属于引用数据类型。

    抽象类怎么定义?

    [修饰符列表] abstract class 类名{        类体;}

    抽象类是干什么的?

    抽象类无法实例化,无法创建对象,所以抽象类是用来被子类继承的,抽象类中构造方法可以供子类使用。

    final与abstract是对立的两个关键字,不能联合使用。

    什么是抽象方法?

    抽象方法表示没有实现的方法,没有方法体的方法。

    例如:

    public abstract void doSome();

    特点一:抽象方法没有方法体,以分号结尾。

    特点二:抽象方法前面的修饰符列表必须有abstract关键字。

    特点三:抽象类中可以没有抽象方法,但抽象方法只能出现在抽象类中和接口中。

    易错:并不是所有没有方法体的方法都叫做抽象方法!

    非抽象类继承抽象类

    以下面代码为例:

    代码

    //抽象类public abstract class Animal {    //抽象方法    public abstract void move();}//非抽象类继承抽象类class Bird extends Animal{}

    这样写有问题吗?有问题!

    编译器会给出以下结果:

    抽象方法只能出现在抽象类中,当Bird类继承Animal类之后,会将抽象方法也继承过去,所以我们需要在Bird类中通过重写的方式将抽象方法实现了。

    代码

    //抽象类public abstract class Animal {}//非抽象类继承抽象类class Bird extends Animal{        //向上转型    Animal a = new Bird();}

    这样写有问题吗?没有问题!

    a的类型是Animal,是抽象的,所以这就是面向抽象编程,降低程序的耦合度,提高程序的扩展性。

    抽象类总结

    • 抽象类通过在class前面加abstract来定义。

    • 抽象类是无法实例化的,无法创建对象的,所以抽象类是用来被子类继承的。

    • final与abstract是对立的,不能联和使用。

    • 抽象类子类可以是抽象类,也可以是非抽象类。

    • 抽象类虽然无法实例化,但是抽象类有构造方法,可以供子类使用。

    • 抽象类中不一定有抽象方法,但是抽象方法只能出现在抽象类和接口中。

    • 抽象方法的定义:public abstract void doSome();

    • 一个非抽象类继承抽象类,必须将抽象类中的抽象方法进行覆盖。

    接口

    接口的基础语法

    • 接口也是一个"引用数据类型",编译之后也会形成一个class字节码文件。

    • 接口是完全抽象的(抽象类是半抽象的)。

    • 接口的语法如下:

        [修饰符列表] interface 接口名{......}//修饰符列表可以不写
    • 接口支持多继承,一个接口可以继承多个接口。

    • 接口中只包含两部分内容:常量和抽象方法。

    • 接口中所有元素都是public修饰的,都是公开的。

    • 接口中定义抽象方法时:public abstract修饰符可以省略。

    • 接口中定义常量时:public static final修饰符可以省略。

    接口的实现

    类和类之间存在继承,接口和类之间存在类似的关系,叫做实现。

    接口实现的关键字:implements

    语法如下:

    class A implements B{......}

    我们也可以把实现看成一种特殊的继承(接口和类之间的关系),但是要注意关键字的不同。

    注意点:

    一:实现的关键字与继承不同,是implements。

    二:当非抽象类实现接口时,一定要将接口中的抽象方法重写。

    三:在类中实现接口中抽象方法时,修饰符列表不能省略。

    四:一个类可以实现多个接口,这样弥补了类和类之间只存在单继承的缺陷。

    接口和多态联合使用

    接口是完全抽象的,无法实例化,但是接口可以通过实现与多态联合使用。

    如下:

    //接口interface A{    //抽象方法    int add(int a , int b);}//一个类实现了接口Bclass B implements A{    //重写了接口中的抽象方法    public int add(int a , int b){        return a+b;    }    public static void main(String[] args) {        //A接口的引用指向了B类的对象        //面向接口编程        A a = new B();    }}

    继承和实现同时出现

    extends 和 implements可以同时出现,同时出现时,要将extends写在前面,inplements写在后面。

    class Animal{}interface  Flyable{     void fly();}//当继承和实现同时出现时,继承写前面,实现写后面class Bird extends Animal implements Flyable{    public void fly(){        System.out.println("Bird学会了飞翔!");    }    public static void main(String[] args) {        Flyable b = new Bird();        b.fly();    }}

    接口在开发中的作用

    面向接口编程,可以降低程序耦合度,提高程序扩展力,符合ocp开发原则。

    任何一个接口都有调用者和实现者,调用者面向接口调用,实现者面向接口编写实现,接口和多态一起使用可以将调用者和实现者解耦合(切断二者的关系)。

    类型和类型之间的关系

    is a:

    Cat is a Animal

    凡是能满足 is a 的表示继承关系,可以让Cat类继承Animal类。

    has a

    Bird has a Wing

    凡是能满足 has a 的表示关联关系。

    管理关系通常以属性的修饰存在,可以将Wing定义为Bird类中的一个实例变量。

    like a

    Cook like a Menu(比较抽象)

    凡是能满足 like a 的表示实现关系,可以用Cook这个类来实现Menu这个接口。

    关于"Java中的抽象类和接口实例分析"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Java中的抽象类和接口实例分析"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

    接口 方法 实例 之间 类型 关键 关键字 子类 实例分析 分析 同时 对象 程序 问题 多态 代码 内容 实现者 特点 用者 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 天津市摩尔互联网科技 关于新基建和互联网科技 菲比寻常互联网科技 互联网 视角下的科技创新 上海亿帐通互联网科技 佩信高科技互联网 海南科技产业互联网平台 温州喔噻互联网科技有限公司 全球顶尖互联网科技公司 互联网和黑科技的看法 浙江互联网科技研学营 青岛科技大学互联网大赛研究生 四川慕妮娅互联网科技有限公司 用友工业互联网科技发展 厦门江牛科技互联网 富国互联网科技002692 互联网科技接地气 互联网科技手抄报图片 亚光科技低轨卫星互联网 现代互联网科技公司 手磨咖啡 科技互联网企业 科技互联网产品 科技制造互联网公司 湖南洣水互联网科技有限公司扣款 晓花互联网科技有限公司网址 互联网科技与大数据专业 米聚互联网科技南京有限公司排面 佛山市翊博互联网络科技有限公司 国大互联网教育科技有限公司薪资
    0