网站大量收购独家精品文档,联系QQ:2885784924

Java编程思想读书笔记(8章).doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java编程思想读书笔记(8章).doc

  Java编程思想读书笔记(8章)   第8章 接口与内隐类    一. 接口    1. 如果实现接口的class未实现接口中的所有函数,则这个class必须被声明为abstractclass,而接口中未被实现的函数在这个class中为abstractclass。    interface Interface{    public void f();    public void g();    }    abstract class First implements Interface{    public void f(){}    }    class Second extends First{    public void g(){}    }    public class ExplicitStatic{    public static void main(String[] args){    Interface f = neplements MyInterface {    public void f(){}    //!void g(){}出错,应定义为public    }    3. 接口中的数据成员自动成为static和final    interface MyInterface{    int i = 5;    void f();    void g();    }    class First implements MyInterface {    public void f(){}    public void g(){}    }    public class ExplicitStatic{    public static void main(String[] args){    MyInterface x = ne.out.println(MyInterface.i = + MyInterface.i + , x.i = + x.i);    // MyInterface的数据成员I为final,不能修改    //x.i++;    // MyInterface.i++;    }    }    4. 多重继承    1) devricedclass可以同时继承多个interface和一个abstract或concretebaseclass。如果同时继承了baseclass和interface,那么要先写下具象类的名称,然后才是interfaces的名称。    2) 如果derivedclass所继承的具象类具有与interfaces相同的函数,则可在derivedclass不实现那个函数。    interface CanFight{    void fight();    }    interface CanS{    void s();    }    class ActionCharacter{    public void fight(){}    }    class Hero extends ActionCharacter    implements CanFight, CanS{    public void s(){};    }    public class ExplicitStatic{    static void f(CanFight x) { x.fight(); }    static void s(CanS x) { x.s(); }    static void a(ActionCharacter x) { x.fight(); }    static void h(Hero x){    x.fight(); x.s();    }    public static void main(String[] args){    Hero h = new Hero();    f(h); s(h); a(h); h(h);    }    }    因为在ActionCharacterclass中有与接口CanFight完全相同的函数fight(),所以在Heroclass可以不实现fight()方法。当要调用x.fight()时,会调用ActionCharacterclass中的fight()函数。    3) 接口的合并时的名称冲突问题    interface I1 { void f(); }    interface I2 { int f(int i); }    interface

文档评论(0)

ggkkppp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档