Java之初入接口

1. 接口的概述

    以猫狗案例举栗子。我们想想狗一般就是看门,猫一般就是作为宠物了。但是,现在有很多的驯养员可以训练出:猫钻火圈,狗跳高,狗做计算等。而这些额外的动作,并不是所有猫或者狗一开始就具备的,这应该属于经过特殊的培训训练出来的。所以,这些额外的动作定义到动物父类中就不合适,也不适合直接定义到猫或狗的子类中,因为只有部分猫狗具备这些功能。所以,为了体现事物功能的扩展性,Java中就提供了接口来定义这些额外功能,并不给出具体实现,将来哪些猫狗需要被训练,只需要这部分猫狗把这些额外功能实现即可。

2. 接口的好处:通用性,隔离性
3. 接口的基本定义格式:
public interface 接口名称{
    //...
}

接口当中可以包含的组成部分有:

  • 抽象方法(核心)
  • 常量
  • 默认方法(Java 8)
  • 静态方法(Java 8)
  • 私有方法(Java 9)
4. 如何定义一个抽象方法:
public abstract 返回值类型 方法名称(参数类型 参数名称);

注意:

  • 接口中的抽象方法,修饰符可以省略不写,默认就是:public abstract
  • 接口中的抽象方法,修饰符如果写:可以省略publicabstract
  • 抽象方法只有方法头,不能有方法体大括号。

举例如下:

public interface Animal {
     public abstract void eat();
     public void play();
     abstract void fight();
     void sleep();
}
5. 定义实现类格式:
public class 实现类名称 implements 接口名称{
    // 一定要覆盖重写所有的抽象方法
}

什么是覆盖重写(Override)抽象方法?

  • 将接口当中的抽象方法抄写过来
  • 去掉 abstract 关键字(public 不可以去掉!!!)
  • 写上大括号方法体

举例如下:

public class Cat implements Animal {
     public void eat() {
           System.out.println("猫吃饭");
     }
     public void play() {
           System.out.println("猫玩耍");
     }
     public void fight() {
           System.out.println("猫打架");
     }
     public void sleep() {
           System.out.println("猫睡觉。");
     }
     public void catchMouse() {
           System.out.println("猫抓老鼠");
     }
}
6. 如何使用接口与实现类

创建:
接口名称 引用名 = new 实现类名称();
调用:
引用名.抽象方法名(参数);

注意:

  • 左边是接口类型,那么只能调用接口当中定义好的内容,不能调用右侧实现类当中特有的内容。(接口隔离)
  • 调用的时候看左边,运行的时候看右边。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 忆昔年少踯躅,同窗旧事空回首。朝朝暮暮,欲笺心事,杂陈五味。心悦君兮,斜阑读语,锦书难递。忆归难不悔,匆匆太狠,手...
    何以笺为阅读 217评论 0 2
  • 节点与辗转反侧的激烈碰撞 拉扯着游荡的灵魂与不定的思想 黑夜吖黑夜 带我去向远方吧 我希望看见浪漫的星光与海上的太阳
    离人莫叹阅读 211评论 0 1
  • 当一个能说会道的人, 变得沉默了,说明他内心成熟了; 当一个爱说爱笑的人, 变得安静了,说明他具有内涵了; 当一个...
    小微大有阿伟总监阅读 330评论 0 0
  • 姓名:符振华(378期 反省三组) 公司:深圳蔚蓝时代商业管理有限公司-上海第一分公司 【日精进打卡第29天】 【...
    Hank_dec5阅读 128评论 0 0
  • PostgreSQL\l 查看数据库\c 连接数据库\d 查看表名\q 退出psql\h 查看帮助 统计所有 se...
    孤独花园阅读 257评论 0 0

友情链接更多精彩内容