关于JAVA接口

来源:互联网 发布:歌词有傻瓜的网络歌曲 编辑:程序博客网 时间:2022/07/04 05:41

注:写这篇博客主要是为了强化一下记忆。(本文主要摘自 阎宏老师的《java与模式》,代码是自己根据理解所写)
1:什么是接口:
一个java接口是一些方法特征的集合,这些方法特征当然是来自于具体方法,但是它们一般来自于一些在系统中不断出现的方法。接口只有方法的特征,没有方法的实现,因此这些方法在不同的地方被实现时,可以具有完全不同的行为。(摘自 《java与模式》)
2:接口是对可插入行的保证
在一个类等级结构中的任何一个类可以实现一个接口,这个接口会影响到此类的所有子类,但是不会影响到此类的任何超类,此类不得不实现这个接口所规定的方法,而其子类则可以自动继承到这些方法,当然也可以选择置换(重写)所有的这些或者一部分方法。

package com.test;/** * 父类接口 * Created by OldZhu on 2017/8/9. */public interface FatherInterfaceTest {    public void sayHello();    public final String name ="With your hand, with your feet, with your eyes, with your brain, what you touch, what you see, what you imagine, this is your world.";}
package com.test;/** * Created by OldZhu on 2017/8/9. */public interface InterfaceTest extends  FatherInterfaceTest{    public  String helloPeople(String peoplename);}
package com.test;/** * Created by OldZhu on 2017/8/9. */public class HelloInterface implements  InterfaceTest {    @Override    public String helloPeople(String peoplename) {        return "hello,"+peoplename;    }    @Override    public void sayHello() {        System.out.println("say hello");    }}
package com.test;/** * Created by OldZhu on 2017/8/9. */public class SonOfHelloInterface extends HelloInterface {    public static void main(String[] args) {      InterfaceTest hello = new SonOfHelloInterface();        System.out.println(hello.helloPeople("zys"));        hello.sayHello();        System.out.println(hello.name);        System.out.println(name);    }}
//控制台输出hello,zyssay helloWith your hand, with your feet, with your eyes, with your brain, what you touch, what you see, what you imagine, this is your world.With your hand, with your feet, with your eyes, with your brain, what you touch, what you see, what you imagine, this is your world.

3:类等级结构
java接口以及java抽象类一般用来作为一个类型等级机构的起点。
这里写图片描述
混合类型
如果一个类已经有了一个主要的超类型(可以通过继承或者实现),那么通过再次实现一个接口,这个类可以拥有一个次要的超类型,这种次要的超类型就叫做混合类型(Mixin Type)。
如:TreeMap类具有多个类型,主要是AbstractMap,Serializable是一个次要类型,表明这个实例是可以串行化的。

常见用法:
1:单方法接口(如:Runnable)
2:标识接口
无任何方法和属性的接口(如:java.io.Serializable,java.rmi.Remote)
3:常量接口
接口中的常量在具体类的使用中不需要加上接口类名就可以直接使用,这种做法被称为代码模式,被认为是错误的使用方法,不提倡使用。如上面的FatherInterfaceTest 接口中的name。
4:多方法接口

原创粉丝点击
热门问题 快穿:千古风流人物 顶级甜诱:柔弱娇妻人设崩了 闪婚后我成了疯批大佬们的团宠 穿成万人迷文里的炮灰女配 夏日陷情 重生九零:替嫁傻妻成了大佬心头肉 穿成炮灰后全家在古代逃荒求生 穿成恶毒妃子后,靠弹幕洗白了 穿越后,病弱王爷日夜娇哄我 新鲜!乡下来的小娇娇震惊全球 汽车轻微的抖动怎么办 面包车电脑板紊乱怎么办 车子变速箱坏了怎么办 摩托车怠速不稳怎么办 汽车启动转数高怎么办 鬼火摩托车没力怎么办 摩托车油漆掉了怎么办 发动机怠速不稳怎么办 信用综合评分不足怎么办 综合评分不足是怎么办 综合信用分不足怎么办 iptv突然无信号怎么办 排气系统故障灯亮怎么办 空调冷凝器坏了怎么办 水温空调不制冷怎么办 用冷风机屋里潮怎么办 空调制热不出水怎么办 空调水管堵了怎么办 空调制冷不出水怎么办 空调出风口漏水怎么办 空调管漏水厉害怎么办 电动车车速变慢怎么办 遥控器按钮掉了怎么办 苹果6屏幕凸起怎么办 三星笔记本开机黑屏怎么办 笔记本电脑开机黑屏怎么办三星 笔记本电脑黑屏怎么办灯是亮得 九代雅阁收音机信号不好怎么办 九代雅阁电瓶亏电怎么办 17款雅阁混动汽车胎压灯怎么办 空调制冷出热风怎么办 轿车方向机漏油怎么办 车钥匙感应不灵怎么办 汽车助力泵漏油怎么办 奔腾b70油耗高怎么办 方向机漏油了怎么办 威志油耗高怎么办 佳美2.4油耗大怎么办 笔记本电脑按键坏了怎么办 电视主板坏了怎么办 面包车电量亏电怎么办