第七章 继承.ppt_第1页
第七章 继承.ppt_第2页
第七章 继承.ppt_第3页
第七章 继承.ppt_第4页
第七章 继承.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七章,继承,2,内容提要,本节内容提要 继承 方法覆盖 super关键字 抽象方法 抽象类 final关键字,3,继承,继承(复习) 继承 现实生活当中有很多继承关系,例如:,4,继承(续),继承 概念 Java 使用extends 来实现继承的 语法 class SubClassName extends SuperClassName 通过继承,子类自动拥有父类的所有属性和方法 父类也称为:基类,超类 Java 只支持单根继承 Java 通过接口实现多重继承的语义 实例 InheritanceTest.java,5,继承中的访问控制,Java权限修饰符public、protected、pri

2、vate置于类的成员定义前,用来限定其他对象对该类对象成员的访问权限。,对于class的访问修饰符只有:public和default public修饰的类可以被访问 default类只能在本包中被访问,6,继承中的访问控制,public class A private int i; int j; protected int m; public int n; class B extends A public void m() /错误,i为private,无法访问 i = 100; /正确,同包下可以访问,不同包下时不能访问 j = 200; m = 300; n = 400; ,7,方法覆盖,方

3、法覆盖,也称方法重写(override/overWrite) 定义 子类可以重写父类里的同名方法 规则 子类的访问范围必须大于等于父类的访问范围 实例 OverrideTest.java,8,override(overwrite)演示,public class Person public void getInfo() System.out.println(这是一个人类); public static void main(String args) Person p = new Person(); p.getInfo(); /Student s = new Student(); p = new S

4、tudent(); p.getInfo(); class Student extends Person /重写方法 public void getInfo() System.out.println(这是一个学生); ,9,super,super 意义 父类的一个引用 用法 使用 super 可以调用父类的构造方法 使用 super 可以明确指定调用父类的成员(方法和属性) 实例 SuperTest.java,10,super演示,public class FatherClass public int value ; public void m() value = 100; System.out

5、.println(FatherClass.value : + value); class ChildClass extends FatherClass public int value ; public void m() super.m(); value = 200; System.out.println(ChildClass.value : + value); System.out.println(value); System.out.println(FatherClass.value : +super.value); ,11,Child,FatherClas,12,继承中的构造,继承中的构

6、造 规则 构造方法不能被继承 方法和属性可以被继承 子类的构造方法自动调用父类的默认构造方法 当父类没有默认的构造方法时,子类必须显示调用父类的构造方法 实例 InheritanceTest2.java,13,演示,public class InheritanceTest public static void main(String args) SubClass sub = new SubClass(); SubClass sub1 = new SubClass(1000); class SuperClass public SuperClass() System.out.println(Sup

7、erClass().); public SuperClass(int i) System.out.println(SuperClass(1000).+i); class SubClass extends SuperClass public SubClass() /super(100); System.out.println(SubClass().); public SubClass(int i) /super(); System.out.println(SubClass(1000).); ,14,抽象方法,抽象方法 概念 一些方法只是被声明,而没有实现 前面用 abstract 关键字修饰 注

8、意 不能被声明为private、static、final,15,抽象类,抽象类 概念 在一个类里面有一个或者多个抽象方法 注意 抽象类不能被实例化 抽象类只能是超类 继承抽象类的子类,必须实现抽象方法,或者本身也是抽象类 实例 AbstractTest.java,16,演示,public class AbstractTest public static void main(String args) Vehicle car = new Car(); car.run(); abstract class Vehicle private String name; public String getNa

9、me()return name; public abstract void run(); class Car extends Vehicle public void run() System.out.println(小汽车在跑.); ,17,final 关键字,final 的用法 在类前面 阻止继承 例如: java.lang.Math 在方法前面 阻止方法覆盖 在属性前面 常量 实例 FinalTest.java,18,Object类,一切类的基类 所有类具有Object类中定义的方法 根据API文档提示重写类的toString()方法,19,Java5.0新特性,方法中的参数演示 如:方法

10、test(int a,int b,Strings) 此处的第三个参数是一个可有可无的参数,如果给实参可以给多个,如: test(1,2)、test(1,2,”abc”)、 test(1,2,”abc”,”def”)、test(1,2,”a”,”b”,”c”) 以上都是合法的,参数s为数组 如:方法test(String s,Objecto)第二个参数为Object数组,总结,继承 方法覆盖 super关键字 抽象方法 抽象类 final关键字,20,作业,阶段1: 开发矩形类Rectangle,编写其中的计算周长的方法getPerimeter(); 开发正方形类Square继承自矩形类,重写其中的计算周长的方法,21,作业,22,abstract class Shape . . . . . . . . . . . protected double length; protected double width; . . . . . . . . . . . . . . . . . . . . . . abstract double area(); ,class Square extends Shape /* 构造方法. *param num 传递至构造方法的参数 *param num1 传递至构造方法的参数 */ Square(final double num, final do

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论