_第章_抽象类、接口和内部类.pptVIP

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
_第章_抽象类、接口和内部类.ppt

目标 抽象类-1 抽象类 在面向对象的概念中,所有的对象都是通过类来表述,但并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一类具体的对象,这样的类就是抽象类。 抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。 抽象类-2 抽象类实例 定义一个类Shape来演示抽象类的定义和使用。 抽象类-3 抽象类的使用实例 定义Shape类一个的子类Circle来演示抽象类的使用。 抽象类-4 抽象类的特点 抽象类虽然具备类的形式,但由于其“抽象”性,不能定义抽象类的实例,即不能为抽象类分配具体空间 ; 接口-1 接口概述 Java是单继承的语言,利用接口可以模拟多继承; 接口是对抽象类的进一步抽象,是方法声明和常量的定义集合; 接口是一种行为规范,是一种“契约”; 具体格式如下所示: 接口-2 接口实例 定义一个接口MultiInterface.java来演示接口中常量的定义 。 接口-3 接口的使用 接口的使用通过“implements”关键字来实现,示例代码如下 : 抽象类与接口 抽象类与接口的区别 抽象类中可以有非抽象方法。接口中则不能有实现方法; 接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值; 接口中的方法默认都是public abstract类型的。 instanceof运算符 Instanceof 声明为同种类型的两个引用变量调用同一个方法时也可能会有不同的行为。为更准确的鉴别一个对象的真正类型,Java语言引入了instanceof操作符,其使用格式如下: 对象类型转换 引用数据类型转换 引用类型数据转换时,同样可以分为自动转换和强制转换两种情况 : 自动转换:子类转换成父类时(或者实现类转换成接口)可以自动完成。例如,Teacher是Person的子类,将一个Teacher对象赋给一个Person类型的变量时,转换自动完成。 强制转换:父类转换成子类时(或者接口转换成实现类),必须使用强制转换。例如,Teacher类是Person的子类,如果将一个Person对象赋给一个Teacher类型变量的时候,必须使用强制转换。 内部类-1 内部类-2 内部类-3 内部类-4 小结 第 5 章 抽象类、接口和内部类 掌握抽象类的定义及使用 掌握接口的定义及使用 了解内部类的使用 抽象类和接口两种机制的引入,使Java拥有了强大的面向对象编程能力。 抽象类需要注意以下几点: abstract放在class前,指明该类是抽象类; abstract放在方法声明中,则该方法是抽象方法,抽象方法没有方法体; 一个抽象类可以含有多个抽象方法,也可以含有已实现的方法。 public abstract class Shape { double dim; public Shape(double dim) { this.dim = dim; } // 抽象方法,获得面积 public abstract double callArea(); // 抽象方法,获得周长 public abstract double callPerimeter(); } 未实现的方法 public class Circle extends Shape { public Circle(double dim) { super(dim); } // 实现抽象方法callArea() public double callArea() { // 返回圆的面积 return 3.14 * dim * dim; } // 实现抽象方法callPerimeter() public double callPerimeter() { // 返回圆的周长 return 2 * 3.14 * dim; } public static void main(String[] args) { // 声明一个Shape对象,指向实现它的子类对象 Shape shape = new Circle(10); // 调用callArea()求圆的面积,并输出 System.out.println(圆的面积是: + shape.callArea() ); // 调用callPerimeter()求圆的周长,并输出 System.out.println(圆的周长是: + shape.callPerimeter() ); } } 执行结果如下: 圆的面积 : 314.0 圆的周长 : 62.800000000000004 Shap

文档评论(0)

czy2014 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档