继承接口和内部类.ppt
《继承接口和内部类.ppt》由会员分享,可在线阅读,更多相关《继承接口和内部类.ppt(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 继承继承继承继承 多态多态多态多态 抽象类抽象类抽象类抽象类 接口接口接口接口 内部类内部类内部类内部类第四章第四章 继承、接口和抽象类继承、接口和抽象类 继承继承继承继承继承的特点继承的特点继承的特点继承的特点 extends extends 父类名父类名父类名父类名;若无若无若无若无extends,extends,则默认父类则默认父类则默认父类则默认父类ObjectObject 子类将继承父类成员子类将继承父类成员子类将继承父类成员子类将继承父类成员,但不能直接访问父类但不能直接访问父类但不能直接访问父类但不能直接访问父类privateprivate成员成员成员成员 单继承单继承单继承单
2、继承,多层继承多层继承多层继承多层继承 子类对父类可做扩展和特殊化子类对父类可做扩展和特殊化子类对父类可做扩展和特殊化子类对父类可做扩展和特殊化(1)(1)创建新的成员:成员变量和方法创建新的成员:成员变量和方法创建新的成员:成员变量和方法创建新的成员:成员变量和方法(2)(2)重新定义父类中已有的成员变量:隐藏重新定义父类中已有的成员变量:隐藏重新定义父类中已有的成员变量:隐藏重新定义父类中已有的成员变量:隐藏(3)(3)重新定义父类中已有的方法:覆盖重新定义父类中已有的方法:覆盖重新定义父类中已有的方法:覆盖重新定义父类中已有的方法:覆盖(override)(override)子类中的方法
3、应与父类中的被覆盖的方法有完全相同的:参子类中的方法应与父类中的被覆盖的方法有完全相同的:参子类中的方法应与父类中的被覆盖的方法有完全相同的:参子类中的方法应与父类中的被覆盖的方法有完全相同的:参数列表、返回值;而且访问权限不能更严格数列表、返回值;而且访问权限不能更严格数列表、返回值;而且访问权限不能更严格数列表、返回值;而且访问权限不能更严格 super()super():调用父类被覆盖的方法;父类构造方法:调用父类被覆盖的方法;父类构造方法:调用父类被覆盖的方法;父类构造方法:调用父类被覆盖的方法;父类构造方法例:例:例:例:Circle.java,Cylinder.javaCircle
4、.java,Cylinder.java 继承继承继承继承继承的特点继承的特点继承的特点继承的特点 子类的构造方法子类的构造方法子类的构造方法子类的构造方法 (1)(1)若子类的构造方法中若子类的构造方法中若子类的构造方法中若子类的构造方法中,没有使用没有使用没有使用没有使用supersuper调用父类的构造方调用父类的构造方调用父类的构造方调用父类的构造方法和法和法和法和thisthis调用重载的其他构造方法,则在创建子类对象时调用重载的其他构造方法,则在创建子类对象时调用重载的其他构造方法,则在创建子类对象时调用重载的其他构造方法,则在创建子类对象时,系统默系统默系统默系统默认先调用父类的无
5、参构造方法认先调用父类的无参构造方法认先调用父类的无参构造方法认先调用父类的无参构造方法,然后执行子类的构造方法然后执行子类的构造方法然后执行子类的构造方法然后执行子类的构造方法;(2)(2)在子类的构造方法中使用在子类的构造方法中使用在子类的构造方法中使用在子类的构造方法中使用super(super(参数参数参数参数)调用父类的含参构调用父类的含参构调用父类的含参构调用父类的含参构造方法造方法造方法造方法,super,super必须是第一句必须是第一句必须是第一句必须是第一句 (3)this()(3)this()和和和和super()super()不能同时出现不能同时出现不能同时出现不能同时
6、出现 例:例:例:例:Sandwich.javaSandwich.java(构造方法调用次序)(构造方法调用次序)(构造方法调用次序)(构造方法调用次序)多态多态多态多态一个引用变量可以引用多种实际类型的现象称为多态,在运行时能够自一个引用变量可以引用多种实际类型的现象称为多态,在运行时能够自一个引用变量可以引用多种实际类型的现象称为多态,在运行时能够自一个引用变量可以引用多种实际类型的现象称为多态,在运行时能够自动选择调用适当的方法称为动态绑定动选择调用适当的方法称为动态绑定动选择调用适当的方法称为动态绑定动选择调用适当的方法称为动态绑定引用变量的类型转换引用变量的类型转换引用变量的类型转换
7、引用变量的类型转换 子类引用变量转换成父类引用变量子类引用变量转换成父类引用变量子类引用变量转换成父类引用变量子类引用变量转换成父类引用变量 (1 1)规则:沿着继承层次,从下往上,)规则:沿着继承层次,从下往上,)规则:沿着继承层次,从下往上,)规则:沿着继承层次,从下往上,子类可以自动转换成父类子类可以自动转换成父类子类可以自动转换成父类子类可以自动转换成父类 (2 2)转换时机:赋值,方法调用(参数传递)转换时机:赋值,方法调用(参数传递)转换时机:赋值,方法调用(参数传递)转换时机:赋值,方法调用(参数传递)EmployeeEmployeeManagerManagerSecretary
8、SecretaryProgrammerProgrammerManager m=new Manager();Manager m=new Manager();Employee e=m;/Employee e=m;/赋值时发生自动转换赋值时发生自动转换赋值时发生自动转换赋值时发生自动转换e.raiseSalary();/e.raiseSalary();/正确正确正确正确e.setBonus();/e.setBonus();/错误错误错误错误raiseSalary()raiseSalary()setBonus()setBonus()多态多态多态多态引用变量的类型转换引用变量的类型转换引用变量的类型转换
9、引用变量的类型转换 父类引用变量转换成子类引用变量(强制转换)父类引用变量转换成子类引用变量(强制转换)父类引用变量转换成子类引用变量(强制转换)父类引用变量转换成子类引用变量(强制转换)子类引用变量子类引用变量子类引用变量子类引用变量=(=(子类子类子类子类)父类引用变量父类引用变量父类引用变量父类引用变量 EmployeeEmployeeManagerManagerSecretarySecretaryProgrammerProgrammerEmployee e=new Employee();Employee e=new Employee();Manager m=e;/Manager m=e
10、;/错误错误错误错误Employee e=new Employee();Employee e=new Employee();Manager m=Manger(e);Manager m=Manger(e);/强制转换强制转换强制转换强制转换 多态多态多态多态引用变量的类型转换引用变量的类型转换引用变量的类型转换引用变量的类型转换 Object Object 类类类类,toString方法方法例:PolyTest.javaPolyTest.java多态多态:为父类对象设计的任何代码都可以应用于子类为父类对象设计的任何代码都可以应用于子类 动态绑定动态绑定动态绑定动态绑定 对象方法的执行过程对象方法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 继承 接口 部类
限制150内