第4章类继承和多态.pptVIP

  • 2
  • 0
  • 约5.16千字
  • 约 33页
  • 2018-07-08 发布于福建
  • 举报
第4章类继承和多态

Java面向对象程序设计(第二版) 第4章 类的继承和多态 教学内容 Java语言中继承的概念 父类与子类的概念 关键字super的用法 final修饰符的用法 多态的概念及其用法 教学目标 理解继承的概念及重要意义 掌握子类的继承方式 掌握创建子类对象的方法 理解子类和父类构造方法的执行过程 理解和掌握成员变量的隐藏和成员方法的覆盖 掌握super、final关键字的意义及使用方法 理解多态性的意义及用法 4.1 引例 例4.1 应用面向对象程序设计方法,分别设计一个动物类、一个鱼类和一个狗类。鱼和狗都有身高、体重等属性,另外还有吃饭、睡觉等行为。 分析:鱼和狗应具有动物身上的所有属性和行为,但不同的动物其属性和行为又各不相同。我们可以提取所有动物身上的共性,将其设计为一个父类(如动物类),对于不同的动物(如鱼)可以看成是父类的子类。用子类去继承父类属性和行为,实现代码重用。如Jpro4_1.java 4.2 继 承 继承的概念 继承是面向对象程序设计的又一个重要特性。类的继承就是以原有类为基础创建新类,达到代码复用的目的。 面向对象程序设计的继承特性使得大型应用程序的维护和设计变得更加简单。继承机制提供了一种重复利用原有程序模块资源的途径。通过新类对原有类的继承,可以扩充旧的程序模块功能以适应新的用户需求,从而既可以大大方便原有系统的扩充,也可以大大加快新系统的开发速度。 4.2 继 承(续) 4.2 继 承(续) 2. 子类与父类 继承是一种由已有的类创建新类的机制。利用继承,我们可以先创建一个具有公共属性和方法的一般类,根据一般类再创建具有自己属性和方法的新类。新类继承一般类的属性和方法,并根据需要增加自己的属性和方法。由继承而得到的类称为子类或派生类,被继承的类称为父类或超类。子类直接的上层父类称作直接父类,否则叫间接父类。父类直接派生的类称为直接子类,否则叫间接子类。Java不支持多继承,即一个子类只能有一个直接父类。 4.2 继 承(续) 例如: class A { …… } class B extends A { …… } class C extends B { …… } 在类的声明中,class B extends A中的关键字extends表示B类继承A类,即B类是A类的子类,C类是B类的子类。因此,A类是B类的直接父类,A类是C类的间接父类;B类称作A类的直接子类,C类为A类的间接子类。 4.2 继 承(续) 3. 子类的继承性 (1) 同包中的子类和父类的继承性 如果子类和父类在同一包中,子类能继承父类中除private修饰符修饰的成员变量和成员方法。继承后的成员变量和成员方法的访问权限保持不变。 例如: class A { private void priMethod() { System.out.println(priMethod()); } void defMethod() { System.out.println(defMethod()); } protected void proMethod() { System.out.println(proMethod()); } public void pubMethod() { System.out.println(pubMethod()); } } class B extends A { public static void main(String args[]) { B b=new B(); b.priMethod(); //非法访问 b.defMethod(); b.proMethod(); b.pubMethod(); } } 4.2 继 承(续) 3. 子类的继承性 (2)不同包中的子类和父类的继承性 如果子类和父类不在同一包中,那么子类只能继承父类中用protected和public修饰符修饰的成员变量和成员方法。继承后的成员变量和成员方法的访问权限保持不变。 例如: //文件名A.java package superclass; public class A { private void priMethod() { System.out.println(priMethod()); } void defMethod() { System.out.println(defMethod()); } protected void proMethod() { System.out.println(

文档评论(0)

1亿VIP精品文档

相关文档