[其它]第04章 接口、内部类和Java API基础.ppt

[其它]第04章 接口、内部类和Java API基础.ppt

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

第4章 接口、内部类 4.1 接口 4.2 内部类 4.3 Java API基础 4.1 接口 4.1.1 接口与实现接口的类 4.1.2 用接口实现多重继承 4.1 接口 关于接口声明的几点说明 在interface中的所有方法都是public的,抽象的,即使没有声明为public。 在interface中的所有数据成员都是public static final的,即使没有申明。 interface可以从多个父interface得到继承,但是不能继承类。 接口的所有抽象方法必须被实现接口的类覆盖。 接口不能被实例化。 接口是引用数据类型。 4. 接口的特点 (1)接口及接口中成员的访问权限都是public 接口及接口中成员默认的访问权限修饰符都是public,不能用protected或private声明接口或接口中的成员。 public interface Plane1 { private abstract double area(); } 4. 接口的特点 (2)接口中的成员方法都是公有的、抽象的实例成员方法 接口中成员方法的默认修饰符为public abstract,不能声明接口中的成员方法为类方法。 static abstract double area(); 4. 接口的特点 (3)接口中的所有抽象方法必须全部被实现接口的类覆盖 一个非抽象类如果实现一个接口,则该类必须覆盖接口中的所有抽象方法,即参数列表必须一样,并且类中的成员方法必须声明为public。 在实现接口的类中,不能为接口中的成员变量赋值。 4. 接口的特点 (4)接口中的成员变量都是常量 接口中成员变量默认修饰符为public static final,接口中不能声明实例成员变量。声明必须为常量赋值。 一个实现接口的抽象类,可以覆盖接口中的部分抽象方法,也可以不覆盖。 4. 接口的特点 (5)接口不能被实例化 Java中不能创建接口的实例。由于构造方法不能是抽象的,接口中不包含构造方法。 4. 接口的特点 (6)接口是引用数据类型 接口是引用数据类型,可以声明接口的变量。接口变量能够获得实现接口的类的对象,也称为接口对象。 PlaneGraphics2 g1 = new Rectangle2(10,20); 接口变量不能调用接口中没有声明的方法。 4.1.2 用接口实现多重继承 一个类可以继承一个父类并实现多个接口 图4.2 继承机制 【例4.2】 长方体类继承长方形类并实现立体图形接口。 设计立体图形接口SolidGraphics2。 设计长方体类Cuboid1,继承长方形类并实现立体图形接口。 长方体类Cuboid1中必须再次覆盖area()和print()方法。 计算周长方法存在问题。 图4.3 长方体类的多重继承 【例4.3】 球类实现多个接口。 图4.4 球类的多重继承 2. 接口的继承 与抽象类一样,接口也具有继承性,一个接口允许被声明为继承一个已存在的父接口。 接口的继承是多重继承,即一个接口可以有多个父接口。 2. 接口的继承 图4.5 接口的继承 3. 接口与抽象类的区别 相同点: 两者都包含抽象方法,约定多个类共用的方法的参数列表和返回值。 两者都不能被实例化。 两者都是引用数据类型,其变量可被赋值为子类或实现接口类的对象。 不同点(门和门铃) 抽象类约定多个子类之间共同使用的方法;接口约定多个互不相关类之间共同使用的方法。 抽象类与子类之间采用单重继承机制;一个类实现多个接口则实现了多重继承的功能。 抽象类及其类中成员具有与普通类一样的访问权限;接口的访问权限有public和默认两种,接口中成员的访问权限均是public。 抽象类中可以包含非抽象方法,也可以声明构造方法;接口中的方法全部是抽象方法,不能声明构造方法。 抽象类中可以声明成员变量,子类可以对该成员变量赋值;接口中只能声明常量。 4. Java用接口实现多重继承比C++多重继承的优越之处 Java用接口实现多重继承的机制比C++多重继承方式的运行效率高。在单重继承机制下,通过子类对象调用父类的方法,Java将在父类及若干祖先类中寻找指定方法,寻找路径是线性结构。 在C++的多重继承机制下,通过子类对象调用父类的方法,必须在多个父类构成的非线性结构(图结构)中寻找待执行方法,寻找范围大,运行效率低。 4. Java用接口实现多重继承比C++多重继承的优越之处 图4.6 Java单重继承时执行父类或祖先类中的方法 4.2 内部类 类与类之间除了继承关系,还存在嵌套关系,即一个类可以声明包含另一个类,被包含的类称为内部类(inner class),包含

文档评论(0)

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

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

1亿VIP精品文档

相关文档