1.在子类中的方法如果覆盖了父类的方法,它的返回值可以是父类的返回方法的返回类型的子类。例如:
package test;
class R{
}
class T extends R{
}
class Father{
public R f(){
return new R();
}
}
public class p164 extends Father{
public T f(){
return new T();
}
}
2.向下转型:
父类的子类可以自由的进行向上转型,使用父类来代表子类,这是因为,父类不会大于子类的接口。但是,如果想将父类强转成子类,也就是进行向下转型,就有可能产生类转型异常,也就是ClassCastException.例如,以下代码中,如果作为父类的f想要转成子类的类型p164,如果是使用Useful test=new p167();这种方式来创建的,那么强转可以成功,而且可以调用子类中的父类没有的扩展方法。但是,如果就是一个父类的创建方式,Useful test=new Userful();那么这种港式不能强转为子类,会报出ClassCastException。不管是不是调用的子类中的父类没有的扩展方法,都会报错。
package test;
class Useful{
public void f(){
System.out.println("father f()");
}
public void g(){
System.out.println("father g()");
}
}
public class p167 extends Useful{
public void f(){
System.out.println("son f()");
}
public void g(){
System.out.println("son g()");
}
public void v(){
System.out.println("son v()");
}
public static void main(String args[]){
Useful test=new p167();
((p167)test).f();
}
}
分享到:
相关推荐
Java ------ 多态作业
Java程序设计课程实验10-接口和多态Java程序设计课程实验10-接口和多态Java程序设计课程实验10-接口和多态Java程序设计课程实验10-接口和多态Java程序设计课程实验10-接口和多态Java程序设计课程实验10-接口和多态...
Java语言程序设计--继承和多态
JAVA面向对象基础测试题-继承-封装-多态等测试题.docx
Java基础入门教程 Java编程技术02 Java编程基础(4学时)(共55页).ppt Java基础入门教程 Java编程技术03 数组(2学时)(共22页).ppt Java基础入门教程 Java编程技术04 类和对象(2学时)(共31页).ppt Java基础入门...
【IT十八掌徐培成】Java基础第06天-03.多态-类多态-接口多态-同名属性问题.zip
第八讲 多态 1、再谈向上类型转换(upcasting) ...4、构造方法与多态 构造方法的调用顺序 继承和清除 构造方法中多态方法的行为 5、利用继承设计 纯粹继承与扩展 向下类型转换及运行时类型辨识
Java编程实训 Java开发基础入门教程1-06 面向对象编程-继承和多态(共28页).ppt Java编程实训 Java开发基础入门教程1-07 面向对象编程-接口和常量(共28页).ppt Java编程实训 Java开发基础入门教程1-08 面向对象...
第四章 面向对象的概念和 Java 实现-2 回顾 类是具有相同属性和行为的一组对象的 集合 , 对象是类的实例 封装是隐藏对象实现细节的过程,以便不让用户看到实现的细节 类可用Class 来定义,类的变量和方法可被该类的...
JAVA多态思维导图,便捷整理思路,多态的好处、多态的语法格式、多态中的两种类型转换:向上转型、向下转型
Java语言程序设计:JAVA_6-接口与多态、内部类.ppt
继承,抽象,多态
目前测试数据生成方法多数未考虑到面向对象软件的多态特性,无法运用生成的测试数据对程序的多态信息进行充分的测试。根据多态路径测试数据生成的要求,提出了一种应用模拟退火—粒子群优化(simulated annealing-...
JAVA学习笔记,java知识点总结
Python自学教程-04-代码实现多态.ev4.rar
Educoder题目:Java面向对象 - 封装、继承和多态答案解析
java学习资料—Java继承和多态;java学习资料—Java继承和多态;java学习资料—Java继承和多态;java学习资料—Java继承和多态;java学习资料—Java继承和多态;java学习资料—Java继承和多态;java学习资料—Java...
嵌入式Linux下C++程序设计--08多态,运算符重载,虚函数,抽象类.ppt
Java-SpringBoot-使用多态给项目解耦.doc