#Thinking in Java阅读笔记# 第九章 接口
2017-11-04 21:34
513 查看
抽象类和抽象方法
抽象方法是有方法声明而没有方法体的函数,必须要用abstract标明。修饰符 + abstract void f();
而含有一个或者多个抽象方法的类就是抽象类(Abstract Class),必须注明。而抽象类中不要求所有方法都是抽象方法。
abstract class abs{….}
如果新类继承了抽象类,则必须为抽象类中的所有抽象方法提供具体实现,否则新类还为抽象类,这样就没有意义。
抽象类不能实例化,但是可以产生抽象类对象,用来保存非抽象子类的对象。
关键字:extends
抽象类可以包括域与常量
接口 Interface
接口实质上是含有一种或多种抽象方法的完全抽象的类,它根本就没有任何的具体实现。接口可以包含常量,默认为static 和 final的,接口中的方法默认是public的,所以在接口定义中的方法可以不指明public,但是实现了接口的类必须将接口方法指定为public,否则这些方法在继承的过程中会引起访问权限的降低。因为接口的实质是类,所以可以构建接口的对象变量,用来储存实现了这些接口的类的引用。
关键字:implements
interface Rodent{ void hop(); void scurry(); } class Mouse implements Rodent{ public void hop(){ System.out.println("Mouse hopping"); } public void scurry(){ System.out.println("Mouse scurrying"); } }
Java的多重继承
在Java中,导出类只能继承于一个基类,但是却可以实现多种接口,并且导出类可以向上转型为每个接口。在按这种方式组合时,必须将类的继承放在前面,后面跟着接口class Hero extends ActionCharacter implements CanFight,CanSwim,CanFly{ ... }
使用接口的原因:1.方便导出类向上转型为各种基类型 2.防止其他人创建某类的对象,确保这仅仅是建立一个接口 3.使得同一接口具有不同的具体实现
通过继承扩展接口
接口的继承有两种方式:1.继承单个接口
interface Monster{ void menace(); } interface Dangerous extends Monster{ void destroy(); } class Zilla implements Dangerous< 9a91 /span>{ public void destroy(){ } public void menace(){ } }
2.继承接口组:只有接口继承才能使用这种语法,extends用于单一类、多基类接口
interface First{ void CountOne(); void CountTwo(); } interface Second{ void CountThree(); void CountFour(); } interface Third{ void CountFive(); void CountSix(); } interface Combo extends First,Second,Third{ void Count(); }
相关文章推荐
- day8:《Thinking in Java》笔记第九章---接口
- #Thinking in Java阅读笔记# 第三章 操作符
- 《thinking in java》笔记12-接口中的字段和变量
- <<thinking in java>>阅读笔记01
- #Thinking in Java阅读笔记# 第十一章 持有对象
- 再读thinking in java -- 第八章 多态 & 第九章 接口
- Thinking in java 笔记(二) -- 初始化和销毁
- 学习《Thinking in java》笔记二
- 《Thinking in Java 》学习笔记 --- Java内存分配,对象存放到什么地方?怎么放?
- Thinking in Java笔记7
- Thinking in Java 笔记
- 复习《Thinking in Java》笔记一:第五、第八章笔记
- java笔记第九章之接口
- Thinking in java Chapter 1 笔记
- Thinking in Java【笔记】
- java线程协作---错失的信号(thinking in java 笔记)
- 《Thinking In Java》笔记(2)
- 学习《Thinking in java》笔记一 【浏览器插件】
- 通过类字面常量解释接口常量为什么只能定义为static final,类加载过程---Thinking in java
- Thinking in Java [Java编程机制] 学习笔记 -- 变量和对象