第4章继承与多态new.ppt

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 继承与多态 4.1 继承与多态的实现技术 继承实例 2. 多态 多态的实现 4.2 类的继承 定义子类 1.2 子类对父类成员的可访问性 super关键字 super关键字用来表示直接父类的引用。 super的应用: 在子类中调用父类的构造方法; 在子类中使用被子类覆盖的父类成员。 super方法是父类构造方法,分为带参数和不带参数的情况; super方法是子类必定调用的构造方法,且是子类构造方法的第一条语句; 如果子类没有显式地调用super方法,那么它隐含地调用了不带参数的super( )。 4.3 类成员的继承、覆盖与重载 子类方法对父类方法的覆盖和重载 方法覆盖与重载举例 父类方法: int xyz(int a,int b) {…}(默认访问属性) 子类方法: public int xyz(int a,int b) {…} //覆盖(不同访问属性 返回值,方法名,参数类型相同) int xyz(int a, float b) {…} //重载(方法名相同,参数类型或返回值不同) float xyz(float a, float b) {…} //重载 float xyz(int a,int b) {…} //错误! 4.4 多态性的实现 4.5 抽象类 在Java语言中,用类表示可实例化的实体类别,用抽象类表示概念性的事物。抽象类是对类的抽象。 例如Animal和Food是抽象类;Dog和Bread是可实例化的类。Shape类是对Rectangle, Circle类的抽象。 4.6 接口 举例:AreaVolume 接口的定义 举例:接口继承 AreaVolume 接口 Circle类实现AreaVolume接口 Cube类实现AreaVolume接口 如果Circle类继承了Shape2类 Circle类又实现了接口AreaVolume Cylinder类继承了Shape类,并且实现AreaVolume接口 4.7 包 Java API Java API(Application Program Interfaces) Java标准类库说明,包括所有包、类和接口的定义 下载网址: Java SE Java SE 6 Documentation Java的标准输入 import java.util.Scanner; Scanner sread=new Scanner(System.in); int a=sread.nextInt( ); double d=sread.nextDouble(); 抽象方法的声明格式: 修饰符 abstract 返回值类型 方法名 (参数列表); 例如: abstract void sound( ) ; 抽象类的声明格式: [public] abstract class 类名 { 属性和方法声明 } 其中方法既可以是一般的成员方法,也可以是抽象方法。 例子: abstract class Animal { protected String type, name; Animal(String t, String n) { type=t; name=n;} …. abstract void sound( ) ; } 注意: ①抽象类不可以实例化,但可以声明抽象类的引用; ②抽象类不一定包含抽象方法,但是任何包含抽象方法的类 都必须被定义成抽象类; ③抽象类主要用于派生子类,在子类中必须覆盖抽象类中的抽象方法,否则子类也是抽象类; ④static,private, final修饰符不能用于抽象方法。 package abc; public abstract class Shape2 { Shape2( ) { } abstract float area() ; //抽象方法 } 例 1 class Circle extends Shape2{ private float R; Circle(float a) { super(0,0); R=a;} //创建对象 void setR (float x0) {R=x0;} //当前下修改值 float getR() {return R;}//调用时给变量赋值(主函数) float area() { return 3.142f*R*R; }//默认访问属性 } class

文档评论(0)

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

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

1亿VIP精品文档

相关文档