Java 关于接口的那点事儿
2018-06-18 03:07:20来源:未知 阅读 ()
接口的应用
接口是一种能力
关键字:interface
语法:
public interface MyInterface{ public void foo(); //其他方法 }
注:接口内,所有方法都没有方法体
接口的特性:
接口不可以被实例化 常作为类型使用
实现类必须实现接口的所有方法
实现类可以实现多个接口
接口中的变量都是静态常量 Java中的多继承
生活中的接口:
电脑USB接口
引出:
USB接口本身没有实现任何功能
USB接口规定了数据传输的要求
USB接口可以被多种USB设备实现
可以使用Java接口来实现
编写USB接口--->根据需求设计方法
实现USB接口--->实现所有方法
使用USB接口--->用多态的方式使用
接口作为一种约定和能力的含义
接口是一种约定和能力
接口实现Java多继承
接口中所有方法都是抽象方法
接口中所有变量都是静态常量
接口在实际开发中的应用:
使用接口开发:
接口是一种能力
关心实现类有何能力,而不关心实现细节
面向接口的约定而不考虑接口的具体实现
接口的实现:
实现接口的关键字:implements
如需要实现多个接口使用“,”分隔
例:
implements A,B,C...
使用接口:多态
与继承的使用方法相同
一个人可以具有多项能力
一个类可以实现多个接口
栗子:
/** * */ package interfacedemo3; /** * @author xjz *拍照 */ public interface TheakePIctrues { void takePictrue(); }
package interfacedemo3; /** * 播放功能 * @author xjz * */ public interface PlayWriting { void play(String incontent); }
/** * */ package interfacedemo3; /** * @author xjz *上网 */ public interface NetWork { void networkConn(); }
package interfacedemo3; /** * 抽象类 手机 * @author xjz * */ public abstract class HandSet { private String brand;//品牌 private String type;//类型 public abstract void sendInfo(); public abstract void info();//描述手机 public abstract void call();//打电话 public HandSet(String brand,String type){ this.brand=brand; this.type=type; } public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public String getType() { return type; } public void setType(String type) { this.type = type; } }
/** * */ package interfacedemo3; /** * @author xjz *智能机 */ public class ApptitudeHandSet extends HandSet implements TheakePIctrues,NetWork { public ApptitudeHandSet(String brand, String type) { super(brand, type); // TODO Auto-generated constructor stub } @Override public void call() { System.out.println("智能机打电话"); } @Override public void info() { System.out.println("智能机发信息"); } @Override public void sendInfo() { System.out.println("智能机发信息"); } @Override public void takePictrue() { System.out.println("拍照"); } @Override public void networkConn() { System.out.println("上网"); } }
package interfacedemo3; /** * 普通手机 放音乐 * @author xjz * */ public class CommonHandSet extends HandSet implements PlayWriting{ public CommonHandSet(String brand,String type){ super(brand,type); } @Override public void call() { System.out.println("打电话"); } @Override public void info() { System.out.println("手机类型为:"+getType()+"手机品牌为;"+getBrand()); } @Override public void sendInfo() { System.out.println("发短信"); } @Override public void play(String incontent) { System.out.println("播放"+incontent+"音乐"); } }
package interfacedemo3; public class Test2 { /** * @param 房上的猫 */ public static void main(String[] args) { HandSet hs=new CommonHandSet("诺基亚","普通机"); hs.call(); hs.info(); ApptitudeHandSet znj=new ApptitudeHandSet("三星", "智能机"); znj.networkConn(); } }
总结:
接口有比抽象类更好的特性:
1.可以被多继承
2.设计和实现完全分离
3.更自然的使用多态
4.更容易搭建程序框架
5.更容易更换实现
......
Java中的接口
属性全都是全局静态常量
方法都是全局抽象方法
无构造方法
一个类可以实现多个接口,非抽象类实现接口时必须实现接口中的全部方法
抽象类利于代码复用,接口利于代码维护
(C) 房上的猫 。 保留所有权利。
https://www.cnblogs.com/lsy131479/
如需转载,请注明出处!!!
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Java 9 新特性
下一篇:java集合框架详解
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- Spring系列.ApplicationContext接口 2020-06-11
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash