Java编程思想读书笔记-2(第8章)
Java编程思想读书笔记 第2~7章
第8章 接口与内隐类
一. 接口
1. 如果实现接口的class未实现接口中的所有函数,则这个class必须被声明为abstract class,而接口中未被实现的函数在这个class中为abstract class。
- inte易做图ce Inte易做图ce{
- public void f();
- public void g();
- }
- abstract class First implements Inte易做图ce{
- public void f(){}
- }
- class Second extends First{
- public void g(){}
- }
- public class ExplicitStatic{
- public static void main(String[] args){
- Inte易做图ce f = new Second();
- f.f();
- f.g();
- }
- }
2. 接口中的所有函数自动具有public访问权限,所以实现某个接口时,必须将承袭自该接口的所有函数都定义为public
- inte易做图ce MyInte易做图ce {
- public void f();
- void g();
- }
- class First implements MyInte易做图ce {
- public void f(){}
- //!void g(){}出错,应定义为public
- }
3. 接口中的数据成员自动成为static和final
- inte易做图ce MyInte易做图ce{
- int i = 5;
- void f();
- void g();
- }
- class First implements MyInte易做图ce {
- public void f(){}
- public void g(){}
- }
- public class ExplicitStatic{
- public static void main(String[] args){
- MyInte易做图ce x = new First();
- // MyInte易做图ce的数据成员I为static,可直接调用
- System.out.println("MyInte易做图ce.i = " + MyInte易做图ce.i + " , x.i = " + x.i);
- // MyInte易做图ce的数据成员I为final,不能修改
- //x.i++;
- // MyInte易做图ce.i++;
- }
- }
4. 多重继承
1) devriced class可以同时继承多个inte易做图ce和一个abstract或concrete base class。如果同时继承了base class和inte易做图ce,那么要先写下具象类的名称,然后才是inte易做图ces的名称。
2) 如果derived class所继承的具象类具有与inte易做图ces相同的函数,则可在derived class不实现那个函数。
- inte易做图ce CanFight{
- void fight();
- }
- inte易做图ce CanSwim{
- void swim();
- }
- class ActionCharacter{
- public void fight(){}
- }
- class Hero extends ActionCharacter
- implements CanFight, CanSwim{
- public void swim(){};
- }
- public class ExplicitStatic{
- static void f(CanFight x) { x.fight(); }
- static void s(CanSwim x) { x.swim(); }
- static void a(ActionCharacter x) { x.fight(); }
- static void h(Hero x){
- x.fight(); x.swim();
- }
- public static void main(String[] args){
- Hero h = new Hero();
- f(h); s(h); a(h); h(h);
- }
- }
因为在Actio
补充:软件开发 , Java ,