博客
关于我
接口
阅读量:741 次
发布时间:2019-03-22

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

Java 接口与抽象类深入解析

接口(Interface)解析

  • 接口的定义

    接口是Java编程语言中的抽象类型,是抽象方法的集合。接口通常以interface关键字声明,类通过实现接口来继承接口的抽象方法。

  • 接口与类的区别

    • 接口不能用于实例化对象。
    • 接口没有构造方法。
    • 接口中的所有方法必须是抽象方法。
    • 接口不能包含成员变量,除了static和final变量。
    • 接口不是被类继承,而是要被类实现。
    • 接口支持多重继承。
  • 接口的特性

    • 接口中的每一个方法都是隐式抽象的,隐式指定为public abstract。
    • 接口中的变量会被隐式指定为public static final,不能使用private修饰。
    • 接口中的方法不能在接口中实现,只能由实现接口的类来实现。
  • 抽象类(Abstract Class)与接口的区别

  • 方法实现

    抽象类中的方法可以有方法体,可以实现具体的功能,而接口中的方法不行。

  • 成员变量

    抽象类中的成员变量可以是各种类型,而接口中的成员变量只能是public static final类型。

  • 静态代码块和静态方法

    抽象类是可以有静态代码块和静态方法的,而接口不能有。

  • 继承与实现

    一个类只能继承一个抽象类,而一个类可以实现多个接口。

  • 接口与抽象类的代码示例

    抽象类实现

    package com.yuhui.a11;
    abstract class Animal {
    protected String name = "";
    protected int shoutNum = 5;
    public String Shout() {
    StringBuffer result = new StringBuffer();
    for (int i = 0; i < shoutNum; i++) {
    result.append("喵喵");
    }
    return result.toString();
    }
    }

    接口实现

    package com.yuhui.a11;
    class Cat extends Animal {
    public Cat() {}
    public Cat(String name) {
    super.name = name;
    }
    protected String getShoutSound() {
    return "喵喵";
    }
    }

    实现接口的类

    package com.yuhui.a11;
    public class MachineCat extends Cat implements IChange {
    public MachineCat() {
    super();
    }
    public MachineCat(String name) {
    super(name);
    }
    public String ChangeThing(String thing) {
    return super.Shout() + "我有万能的口袋,我可变出 : " + thing;
    }
    }

    另一个实现接口的类

    package com.yuhui.a11;
    public class KingMonkey extends Monkey implements IChange {
    public KingMonkey() {
    super();
    }
    public KingMonkey(String name) {
    super(name);
    }
    public String ChangeThing(String thing) {
    return super.Shout() + "我有七十二变,我可变出 : " + thing;
    }
    }

    接口定义

    package com.yuhui.a11;
    interface IChange {
    abstract String ChangeThing(String thing);
    }

    代码执行结果

    • 机器猫: 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 哈哈哈哈"; } }
    执行结果:
    - 机器猫: 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 喵喵 哈哈哈哈
    - 孙悟空: 嗷 嗼 嗷 嗼 嗷 嗼 嗷 嗼 嗷 嗼 嗷 嗼 嗷 嗼 嗷 嗼 嗷 嗼 嗷 嗼 嗷 嗼 嗷

    转载地址:http://ubfwk.baihongyu.com/

    你可能感兴趣的文章
    Python哪个版本最稳定好用2023.10.19
    查看>>
    python命名空间更改_Python模块xml.etree.ElementTree自动修改xml命名空间键
    查看>>
    Python命名中尾随下划线有什么好处?
    查看>>
    Python启动脚本
    查看>>
    python吊打Excel?屁!那是你不会用!
    查看>>
    Python合并两张图片 | 先叠透明度再合并 (附Demo)
    查看>>
    python各进制的表述与转换
    查看>>
    python各种库安装
    查看>>
    python可视化matplotlib_如何使用Python中最强大的可视化工具Matplotlib?
    查看>>
    python可维护性_使用这7大神器,让你的Python 代码更容易于维护
    查看>>
    python变量的详细教程_Python零基础入门教程之语法入门[变量](第二期)
    查看>>
    Python变量命名方法-ChatGPT4o作答
    查看>>
    Python变量与运算符
    查看>>
    python单元测试之unittest
    查看>>
    Python单元测试unittest实战
    查看>>
    python协程实时输出_Python 协程以及事件循环的问题,怎么知道 IO 读取结束了呢?...
    查看>>
    Python化身“安全老中医”:一键搞定工控系统漏洞,从零基础到精通,收藏这篇就够了!
    查看>>
    Python加速运行技巧
    查看>>
    python办公自动化基础遍历文件夹
    查看>>
    python办公自动化基础输出文件和文件夹
    查看>>