Java的抽象、接口(interface)与实现(implement)

邮差的信 提交于 2020-03-01 02:37:14

一、abstract抽象类

抽象是什么?顾名思义,抽象就是很抽象…(废话

抽象类是一种思想 反映了很多类共有的一些特征
抽象方法在定义方法时不写方法体 不包含方法体
必须用abstract关键字来修饰
例:

abstract void shout();

1、抽象方法没有方法体 不能被调用
2、包含抽象方法的类必须声明为抽象类 但抽象类可以不包含任何抽象方法
3、抽象类不能被实例化
4、抽象类的子类只有覆盖了抽象类的所有方法 子类才能实例化 否则 仍然是一个抽象类
抽象就是相当于提炼出一些功能

二、interface接口

接口:扩展功能

接口是一种完全抽象类★
接口是一种抽象的思想 主要反映了被实现的类的一些共性

1、接口中的方法都是抽象的 不能实例化对象
2、当一个类实现接口时 如果这个类是抽象类 则实现接口中的部分方法即可 否则需要实现接口中的所有方法
3、一个类通过implements关键字实现接口时 可以实现多个接口 被实现的多个接口之间要用逗号隔开 这解决了多继承只能继承一个的弊端 被称为多实现
接口继承接口 即可实现多继承

例:

interface People
{
    void work();
    void run();
}

class Student implements People
{
    public void work()
    {
        System.out.println("work:学生去上课");
    }
    public void run()
    {
        System.out.println("run:学生跑步。速度:快");
    }
}

class Teacher implements People
{
    public void work()
    {
        System.out.println("work:教师去上课");
    }
    public void run()
    {
        System.out.println("run:教师跑步。速度:慢");
    }
}

class Runner implements People
{
    public void work()
    {
        System.out.println("work:运动员去训练");
    }
    public void run()
    {
        System.out.println("run:运动员跑步。速度:极快");
    }
}

三、implements 实现

在接口里完成上级的方法 这不叫继承 叫实现
实在无法理解的话 可以理解为仅仅是术语改变了一下

例:
A extend B 这是A继承B
A implement B 这是A实现B

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!