对象的向上转型/向下转型笔记

简介: 对象的向上转型/向下转型笔记

对象的向上转型

父类名称 对象名 = new 子类名称;

创建一个子类对象 把它当成父类来看待使用。


Animal animal =new cat();

创建了一只猫当成动物来看待。

向上转型一定是安全的

因为从小范围转向了大范围,

例如:double num=100;

(自动类型转换)


对象的向下转型

其实是一个还原的动作

格式:

子类名称 对象名 = (子类名称 )父类对象 ;

**含义:**将父类对象还原成为原来的子类对象。

Animal animal =new cat();

public class demo {
    public static void main(String[] args) {
        fu son =new zi();
        son.method();//如果父类方法被子类重写则优先调用子类方法
        zi sonzhuanxing=(zi) son;//向下转型
        dog som= (dog)son;//zi 不能转换为dog类
        //原来son是new的什么对象就只能向下转换为new 的对象类型
    }
}
相关文章
|
编译器 C语言 C++
类和对象(1):类,对象,this指针
类和对象(1):类,对象,this指针
|
7月前
|
设计模式 Java 编译器
面向对象编程中的继承与多态:深入理解父类引用指向子类实例
面向对象编程中的继承与多态:深入理解父类引用指向子类实例
|
编译器 C++
C++类与对象 - 2(构造函数和析构函数)(超详细)
C++类与对象 - 2(构造函数和析构函数)(超详细)
68 0
|
4月前
|
存储 Java 程序员
08 Java面向对象基础(对象与类+实例变量与方法+构造方法+this关键字)
08 Java面向对象基础(对象与类+实例变量与方法+构造方法+this关键字)
81 4
|
6月前
|
安全 编译器 C语言
类与对象\构造函数与析构函数
类与对象\构造函数与析构函数
25 1
原型链继承: 原理:将父类的实例作为子类的原型
原型链继承: 原理:将父类的实例作为子类的原型
|
安全 Java 编译器
C++的向上转型
在 C/C++ 中经常会发生数据类型的转换,例如将 int 类型的数据赋值给 float 类型的变量时,编译器会先把 int 类型的数据转换为 float 类型再赋值;反过来,float 类型的数据在经过类型转换后也可以赋值给 int 类型的变量。 数据类型转换的前提是,编译器知道如何对数据进行取舍。例如: int a = 10.9; printf("%d\n", a); 输出结果为 10,编译器会将小数部分直接丢掉(不是四舍五入)。再如: float b = 10; printf("%f\n", b); 输出结果为 10.000000,编译器会自动添
|
C++
类和对象中类对象作为类成员
类和对象中类对象作为类成员
66 0
|
存储 设计模式 安全
如何理解子类对象赋值给父类(深入理解动态绑定、静态绑定)
如何理解子类对象赋值给父类(深入理解动态绑定、静态绑定)
如何理解子类对象赋值给父类(深入理解动态绑定、静态绑定)