接口中可以包含的内容:

抽象法和非抽象方法(jdk1.8,必须使用default的关键字),属性(public static final)常量。

接口和类的关系

1.(继承了接口)类必须去实现接口中的抽象方法。

package com.bjsxt.interfac;

public abstract class Person {
public abstract void show();
} package com.bjsxt.interfac; public class Student extends Person implements Play{ @Override
public void show() {
// TODO Auto-generated method stub } }

2.一个类既有继承也有实现的话,继承在前,实现在后。

public class Student extends Person implements Play

3.如果父类和接口都有一样的方法,则子类是调用父 类的方法而非接口的。

package com.bjsxt.interfac;

public interface Play {
public void show();
} implements com.bjsxt.interfac.Person.show 4.如果父类和接口中的方法名称一样时,在子类调用时,要构成方法分重载。
package com.bjsxt.interfac; public class Student extends Person implements Play{ @Override
public void show() {
// TODO Auto-generated method stub } @Override
public void show(String songName) {
// TODO Auto-generated method stub } } package com.bjsxt.interfac; public interface Play {
public void show(String songName); }

接口的特征_使用接口的意义

接口的特征:

1.传递性

package com.bjsxt.interfac;

public interface InterA {
public void show();
} interface InterB extends InterA{ } interface InterC extends InterB{ } class Impl implements InterC{ @Override
public void show() {
// TODO Auto-generated method stub } } 2.继承性(多继承)
package com.bjsxt.interfac; public interface InterA {
public void show();
} interface InterB { } interface InterC extends InterB, InterA{ } class Impl implements InterC{ @Override
public void show() {
// TODO Auto-generated method stub } }

接口使用的意义:

可以实现设计与实现的分离,抽象出n多不同类的共同点。体现的是实现的能力。

鸟,飞机,球(多态)都是实现接口(Flay)调用相同的方法Flaying(),输出结结果,各不相同。

package com.bjsxt.interfacedemo;

public interface Flay {
public void Flaying();
} class Airplane implements Flay{ @Override
public void Flaying() {
System.out.println("飞机在天上飞");
} } class Bird implements Flay{ @Override
public void Flaying() {
System.out.println("鸟在天上飞");
} } class Ball implements Flay{ @Override
public void Flaying() {
System.out.println("球在天上飞");
} } package com.bjsxt.interfacedemo; public class TestFlay {
public static void main(String[] args) {
//接口类型指向实现类的对象
Flay air = new Airplane();
Flay ball =new Ball();
Flay bird=new Bird();
//调用相同的方法
air.Flaying();
bird.Flaying();
ball.Flaying();
//运行结果各不相同
}
}



总结(使用接口实现多态的步骤)

1.编写接口

2.实现类实现接口中的方法

3.接口类型new实现类对象

面向接口的编程。

Java修炼——接口详解_接口的特征_使用接口的意义的更多相关文章

  1. Java修炼——内部类详解

    内部类详解 定义:将一个类定义在另一个类的内部,该类就称为内部类 类中定义的内部类特点: 内部类作为外部类的成员,可以直接访问外部类的成员 (包括 private 成员),反之则不行. 内部类做为外部 ...

  2. Java接口 详解(二)

    上一篇Java接口 详解(一)讲到了接口的基本概念.接口的使用和接口的实际应用(标准定义).我们接着来讲. 一.接口的应用—工厂设计模式(Factory) 我们先看一个范例: package com. ...

  3. java集合(2)- java中HashMap详解

    java中HashMap详解 基于哈希表的 Map 接口的实现.此实现提供所有可选的映射操作,并允许使用 null 值和 null 键.(除了非同步和允许使用 null 之外,HashMap 类与 H ...

  4. “全栈2019”Java第八十四章:接口中嵌套接口详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  5. “全栈2019”Java第八十三章:内部类与接口详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  6. Java6.0中Comparable接口与Comparator接口详解

    Java6.0中Comparable接口与Comparator接口详解 说到现在,读者应该对Comparable接口有了大概的了解,但是为什么又要有一个Comparator接口呢?难道Java的开发者 ...

  7. JDBC常用接口详解

    JDBC中常用接口详解 ***DriverManager 第一.注册驱动 第一种方式:DriverManager.registerDriver(new com.mysql.jdbc.Driver()) ...

  8. socket接口详解

    1. socket概述 socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信. socket起源于UNIX,在Unix一切 ...

  9. [转载]MII/MDIO接口详解

    原文地址:MII/MDIO接口详解作者:心田麦浪 本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时本文也对RJ-45接口进行了总结,分析了在 ...

  10. map接口详解

    1.Map接口详解(1)映射(map)是一个存储键.键值对的对象,给定一个键,可以查询得到它的值,键和值都可以是对象(2)键必须是唯一的,值可以重复(Map接口映射唯一的键到值)(3)有些映射可以接收 ...

随机推荐

  1. nginx目录安全设置

    nginx目录安全设置<pre> location ~ /\. { deny all; }</pre>这样所有隐藏文件都不会以URL方式打开了

  2. PHP创建文件命名中文乱码解决的方法

    PHP创建文件命名中文乱码解决的方法 <pre>iconv('utf-8', 'gbk', $dir); </pre> 因为系统环境是gbk 所以里面的字符也要gbk 编码一致 ...

  3. docker监控容器

    Weave Scope: 是能够自动生成一张 Docker 容器web动态图的监控软件,能够让我们直观地理解.监控和控制容器. 监控一台主机: 第一步:安装 [root@localhost ~]# c ...

  4. mysql忘记密码怎么办??

    1.停掉mysql 1.1单实例停止方式 [root@qiuhom ~]# /etc/init.d/mysqld stop Shutting down MySQL. [ OK ] 1.2多实例停止方式 ...

  5. haproxy+keepalived练习

    小的网站结构 说明:如果部署在云上,比如阿里云上,不需要自己部署keepalived,直接买阿里云的slb即可,slb然后分发流量到两台haproxy机器 一.先部署两个web服务器 编译安装ngin ...

  6. Android Debug 之 Log 最佳实践

    本文微信公众号「AndroidTraveler」首发. 背景 在开发过程中,调试是必不可少的一项工作. 当我们要确定项目的逻辑时,当我们要了解界面的生命周期时,当我们发现新写的逻辑与期望效果不一致时, ...

  7. nyoj 290 动物统计加强版 (字典树 (Trie) PS:map<TLE>)

    动物统计加强版 时间限制:3000 ms  |  内存限制:150000 KB 难度:4   描述 在美丽大兴安岭原始森林中存在数量繁多的物种,在勘察员带来的各种动物资料中有未统计数量的原始动物的名单 ...

  8. nyoj 98-成绩转换 (if, else if)

    98-成绩转换 内存限制:64MB 时间限制:3000ms 特判: No 通过数:49 提交数:74 难度:1 题目描述: 输入一个百分制的成绩M,将其转换成对应的等级,具体转换规则如下: 90~10 ...

  9. 【计算机网络】TCP基础知识详解

    1. TCP概念相关 [!NOTE] TCP(Transmission Control Protocol),又叫传输控制协议. TCP协议是面向连接的,可靠的,基于字节流的传输协议.在基于 TCP 进 ...

  10. Python基础教程(第3版)学习笔记

    第1章.基础 1.几个小知识点 多用 help() 帮助文档 除法运算 / 除法运算,得到结果为浮点数: // 整除运算,得到整数值(向下取整): % 取余操作 (结果符号与除数符号相同),本质上: ...