北京中医药大学《JAVA技术与应用》课件-第6章继承与多态.pptxVIP

  • 3
  • 0
  • 约1.41万字
  • 约 47页
  • 2023-04-26 发布于河北
  • 举报

北京中医药大学《JAVA技术与应用》课件-第6章继承与多态.pptx

大学,本科,专科,硕士,笔记,课件,期中试卷答案,期末试卷答案,教材答案,知识点,经济法,材料科学基础,材料力学,电路,电子技术基础,高频电子线路,宏观经济学,模拟电路基础,模拟电子技术,数字电路,数字电子技术,数字信号处理,通信原理,信号与系统,化工原理,机械设计基础,机械原理,机械制图,微机原理与接口技术,C++程序设计,JAVA技术与应用,MATLAB基础与应用,计算机网络,计算机组成原理,软件工程数据结构,工程力学,工程热力学,结构力学,力学,流体力学,水力学,工程测量,工程经济学,工程

第6章 继承与多态6.1?继承 ---构造方法在类继承中的作用6.2 多态性 ---方法的重载、方法的覆盖6.3 几个特殊类 --- Object类、Class类6.4 对象引用转换 --- 赋值转换、强制转换6.5 访问控制修饰符6.6 final修饰符的使用北京中医药大学《JAVA技术与应用》 6.1 继承 父类或超类。实际上是所有子类的公共域和公共方法的集合.子类,父类的特殊化,是对公共域和方法在功能、内涵方面的扩展和延伸 ,祖先类的所有成员均将成为子类拥有的“财富” Object类是所有类的祖先。 6.1.1 Java继承的实现 import java.awt.Color;class Pixel { ?? private int x; //x坐标 private int y; //y坐标 Color c; //颜色 //其他……} x,y在Point类中有定义 import java.awt.Color;class Pixel extends Point{?? Color c; //颜色?? //其他……}只有c属性是新加入的,其它属性在Point类中均存在 6.1.2 继承关系中构造方法的作用 (1) 子类可以在自己构造方法中使用关键字super来调用父类的构造方法,但super调用语句必须是子类构造方法中的第一个可执行语句;(2) 子类在自己定义构造方法中如果没有用super明确调用父类的构造方法,则在创建对象时,首先自动执行父类的无参构造方法,然后再执行自己定义的构造方法。 必须是子类构造方法的第1条语句!父类的那些属性值,让父类构造!---各司其责 以下程序在编译时将出错,为什么?class parent { String my; public parent(String x) { my=x; } } public class subclass extends parent { } parent类 没有无参构造方法。所以,类设计通常要提供无参构造方法 【例6-1】类的继承中构造方法的调用测试 import java.awt.Color;class Point{ private int x, y; public Point(int x, int y) { //有参构造方法 this.x = x; this.y = y; } public Point() { // 无参构造方法 this(0,0); // 用this调用本类的另一构造方法 } public String toString() { ?? ?? return 点: + x + ,+ y;; }}this代表当前对象 【例6-1】续public class Pixel extends Point { Color c; public Pixel(int x,int y,Color c) { super(x,y); //用super调用父类的构造方法 this.c=c; } public String toString() { ?? return super.toString() + 颜色: +c; } public static void main(String a[]) { Pixel x=new Pixel (3,24,Color.blue); System.out.println(x); }}【注意】使用 this 查找匹配的方法时首先在本类查找,找不到时再到其父类和祖先类查找;使用?super?查找匹配方法时,首先到直接父类查找,如果不存在,则继续到其祖先类逐级往高层查找。如果没有这行,执行super()用super调用父类成员super代表父类对象的引用 6.2.1 方法的重载public class A { void test(int x) { ?System.out.println(test(int): + x );} void test(long x) { ?System.out.println(test(long): + x ); }?? void test(double x) { System.out.println(test(d

文档评论(0)

1亿VIP精品文档

相关文档