文档详情

面向对象编程继承和多态.ppt

发布:2016-04-02约5.14千字共23页下载文档
文本预览下载声明
如何实现继承 3-1 在Java语言中,用extends关键字来表示一个类继承了另一个类,例如: public class Woman extends Human { //其余代码省略 } 在父类中只定义一些通用的属性与方法,例如: public class Human { private String name; private String school; public Human(String name, String sex, int age){ //初始化属性值 } public void canEat(){ } public void breath() { } } 如何实现继承 3-2 子类自动继承父类的属性和方法,子类中可以定义特定的属性和方法 public class Human{ private String name; // 教员姓名 private String sex;// 所在中心 public Human (String myName, String mySex) { //初始化属性值 } public void sayHello() { //方法的具体实现 } } public class Father extends Human { public Father(String myName, String mySex) { super(myName, mySex); } public void sayHello(){ System.out.println(“你好,我是爸爸); super.sayHello(); } } 由于sayHello()方法与父类的实现有所不同,因此重写了该方法 方法重写:子类和父类的方法具有相同的名称、参数列表、返回类型 父类中的属性和方法可以被子类继承 public class Father extends Human { public Father(String myName, String mySex) { super(myName, mySex); } } 如何实现继承 3-3 子类的构造方法中,通过super关键字调用父类的构造方法 方法重写后,通过super关键字调用父类的方法 public class Father extends Human { public void sayHello(){ System.out.println(“你好,我是爸爸); super.sayHello(); } } 通过调用父类的构造方法,完成对属性值的初始化 一切类的“祖先”——Object 在Java 中,所有的Java类都直接或间接地继承了java.lang.Object类 public class MyObject { //… } public class MyObect extends Object { //… } 在Eclipse中调用MyObject对象的成员,会自动弹出继承自Object的所有方法 4.6.1 类和类的继承 函数的覆盖和重载的区别 4.6.1 类和类的继承 切记! 覆盖的情况下,子类的访问权限比父类要大。 为什么需要多态 5-1 在Woman/Man类的基础上,开发一个类用来判断,负责对Woman、Man中的方法进行判断: 1、打招呼 为什么需要多态 5-2 第一种解决方案 public class Judge { public void judge(Man man){ man.sayHello(); man.isFather(); } public void judge(Woman woman){ woman.sayHello(); woman.isMother(); } public static void main(String[] args){ Man lisi = new Man(李四,男); Woman lili = new Woman(李丽,女); Judge judge = new Judge(); judge.judge(lisi); judge.judge(lili); } } 我继承于Human类,是个男性 大家好,我是李四,是个男人 我继承于Human类,是个女性 大家好,我是李丽,是个女人 控制台输出 为什么需要多态 5-3 现在,升级人类,增加一种新类型:Boy 同时,Judge也负责对这类进行评估 为什么需要多态 5-4 如果在第一种
显示全部
相似文档