博客
关于我
接口
阅读量: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/

    你可能感兴趣的文章
    Mysql 数据类型一日期
    查看>>
    MySQL 数据类型和属性
    查看>>
    mysql 敲错命令 想取消怎么办?
    查看>>
    Mysql 整形列的字节与存储范围
    查看>>
    mysql 断电数据损坏,无法启动
    查看>>
    MySQL 日期时间类型的选择
    查看>>
    Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)
    查看>>
    MySQL 是如何加锁的?
    查看>>
    MySQL 是怎样运行的 - InnoDB数据页结构
    查看>>
    mysql 更新子表_mysql 在update中实现子查询的方式
    查看>>
    MySQL 有什么优点?
    查看>>
    mysql 权限整理记录
    查看>>
    mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
    查看>>
    MYSQL 查看最大连接数和修改最大连接数
    查看>>
    MySQL 查看有哪些表
    查看>>
    mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
    查看>>
    MySql 查询以逗号分隔的字符串的方法(正则)
    查看>>
    MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
    查看>>
    mysql 查询数据库所有表的字段信息
    查看>>
    【Java基础】什么是面向对象?
    查看>>