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

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

Java 接口与抽象类深入解析

接口(Interface)解析

  • 接口的定义

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

  • 接口与类的区别

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

    • 接口中的每一个方法都是隐式抽象的,隐式指定为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/

    你可能感兴趣的文章
    PHP生成器-动态生成内容的数组
    查看>>
    PHP的ip2long和long2ip升级函数
    查看>>
    PHP的json_encode函数应用到微信接口问题(include \uxxxx will create fail)
    查看>>
    php的web路径获取
    查看>>
    php的一些小笔记--字符串
    查看>>
    php的几种运行模式CLI、CGI、FastCGI、mod_php
    查看>>
    php的四大特性八大优势
    查看>>
    RabbitMQ
    查看>>
    PHP的威胁函数与PHP代码审计实战
    查看>>
    PHP的引用举例
    查看>>
    PHP相关代码
    查看>>
    RabbitMQ
    查看>>
    php知识点记录
    查看>>
    PHP系列:浅谈PHP中isset()和empty() 函数的区别
    查看>>
    PHP索引数组unset的坑-array_values解决方案
    查看>>
    PHP索引数组排序方法整理(冒泡、选择、插入、快速)
    查看>>
    PHP线程安全和非线程安全
    查看>>
    R3LIVE开源项目常见问题解决方案
    查看>>
    php缃戠珯,www.wfzwz.com
    查看>>
    php缓存查询函数
    查看>>