Java 接口理论篇
2018-06-18 03:02:39来源:未知 阅读 ()
接口的两层含义:接口作为数据类型 狭义的接口
接口的第二层含义:工具 广义的接口
在接口中所有的变量都是静态常量
在接口中所有方法都是抽象方法
定义一个接口使用关键字:interface
一个类要实现一个接口使用关键字:implements
类与类之间的关系叫做继承
类与接口之间的关系叫做实现
一个类可以实现多个接口
01.预习
如何编写接口?
解析:
Public interface IFly{
Public void fly();
}
接口有哪些特性?(说出2个)
解析:代表一种能力,代表一种规范
C#接口与Java接口的区别有哪些?(说出2个)
解析 : 01.C#中接口中方法不用访问修饰符
02.Java接口中属性是静态常量。
Public static int num=5;
以下为第一节课程的复习
02.接口定义
01.接口是一种规范,约束实现该接口类中方法的签名(方法名,参数列表和返回值)
02.public interface Door{
//公有的抽象方法
Public void test();
//字段必须是公有的静态的常量
Public int age=0;
}
Public class FDDoor implements Door,Lock{
Public void test(){
}
}
03.Java中三种多态实现方案
方案一:父类是一个普通类Parent,类中一个普通方法test()
子类Child继承父类,子类中有一个同名方法test()
Parent p=new Child();
P.test();//子类方法
方案二:父类Parent是抽象类,有一个抽象方法test()
子类Child继承抽象类,重写了test()
Parent p=new Child();
P.test();//子类方法
方案三:定义一个接口Parent,接口中有一个方法test()
子类实现该接口,重写了test()
Parent p=new Child();
P.test();//子类方法
我的无奈你永远不懂,因为我是抽象类。
坦白的说,抽象类存在真的很不容易。在接口没有出生的时候,抽象类还可以大言不惭的说我是规范的制定者,但是背后传来一个声音,你只会比手画脚,发号施令,从来都不干实事(没有方法体啊)。于是抽象类就这样被埋没了。既然这样,抽象接着毅然决然的寻找着自己的闪光点。但是一个个日出 换来了日落,今天的抽象类依然是抽象类。依然不可以昂头挺胸,气宇轩昂的向JVM索要空间~因为抽象类永远只能new别人,这或许就是《抽象类的伤心》吧!虽然经过种种伪装之后,抽象类可以有所谓的对象,例如,通过静态手段,通过子类等,但是,抽象类心里清楚,如果创建这样的对象,自己宁可不要。于是,抽象类再次倔强的谢绝了自己成为对象这个事实。然而,抽象类的伤心谁能知道,看到一个一个类都new出了自己的幸福,抽象类依然在默默的寻找着自己的亮点。虽然这是一条披满荆棘的漫漫长路,但是就像他喜欢的一句话:把握现在,珍惜当下,做真实的自己。真的希望,有一天,抽象类可以拿着麦克风大声说,其实我是一个有用的类。我不只是别人的嫁衣,别人的陪衬。
难道在面向接口编程的今天,我抽象类真的就没有天日可见了吗,就因为我不能多继承吗?我不服。抽象类有自己的构造函数,但是却不能new,这种无奈谁又能懂?难道抽象类的存在只是为了子类吗?
然而恰恰抽象类就处于这样一个尴尬的境地。
****************************************************************************
04.接口的注意事项
01.接口不能实例化,因为接口是比抽象类抽象程度更好的类型
02一个类如果实现了某个接口,必须重写该接口中的所有方法
03.接口不能有构造,但是抽象类可以有
04.接口中所有方法都公有的抽象方法
05.接口中的所有字段必须都是公有的静态常量
06.接口本身也是一种数据类型
07.接口只是为实现它的类定义了规范,保证实现类方法签名和接口中对应方法一致。
08.通过接口可以实现多继承
09.一个借口中最好只定义一个方法,防止接口污染
05.抽象类和接口的区别
01.抽象类中可以有普通方法,接口中不能
02.抽象类可以有构造,接口不能
03.抽象类中可以有普通字段,而接口中不行
04.抽象类不能实现多继承,接口可以
05.符合is a关系的选用抽象类,符合has a关系的选用接口
05.接口比抽象类抽象程度更高
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的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