多态向上转型向下转型

    public static void main(String[] args) {
        Artist artist;
        artist = new ViolinArtist();//(向上转型)ViolinArtist为子类,父类引用子类对象 损失自己特有的属性和方法
        artist.make();//调用的子类的方法
        //artist.play();   会报错,
        ViolinArtist va = new ViolinArtist();
if(artist instanceof ViolinArtist){  //判断一个对象是否属于一个类或一个接口
            System.out.println("真");
        }else{
            System.out.println("假");
        }
        va = (ViolinArtist)artist;//向下转型,恢复自己特有的方法和属性
        va.play();
    }
时间: 2024-08-04 17:01:23

多态向上转型向下转型的相关文章

多态 向上,向下转型

注意:自始自终都是子类对象在做着类型的变化向上转型:作用:限制对子类特有方法的访问父类引用   指向 子类对象   //向上转型 ,但是不能访问子类特有的方法       Animal    父类                 cat()子类继承与Animal  Animal  a  =  new  cat();----------------------------------------------向下转型:作用:为了访问子类中的特有方法子类引用   指向 父类(引用)  对象cat s 

“全栈2019”Java第九十章:内部类可以向上或向下转型吗?

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第九十章:内部类可以向上或向下转型吗? 下一章 "全栈2019"Java第九十一章:内部类具有多态特性吗? 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学

java上转型和下转型(对象的多态性)

/*上转型和下转型(对象的多态性) *上转型:是子类对象由父类引用,格式:parent p=new son *也就是说,想要上转型的前提必须是有继承关系的两个类. *在调用方法的时候,上转型对象只能调用父类中有的方法,如果调用子类的方法则会报错 *下转型:是父类向下强制转换到子类对象 *前提是该父类对象必须是经过上转型的对象. * *代码示例:*/ 1 abstract class Parent{ 2 abstract void grow(); 3 } 4 class Son extends P

向上与向下转型

向下转型 在向下转型过程中,分为两种情况: 如果父类引用的对象如果引用的是指向的子类对象,那么在向下转型的过程中是安全的.也就是编译是不会出错误的. 如果父类引用的对象是父类本身,那么在向下转型的过程中是不安全的,编译不会出错,但是运行时会出现java.lang.ClassCastException错误.它可以instanceof来避免出错此类错误. 1 Father fh=new Father(); 2 if(fh instanceof Son) 3 { 4 Son son =(Son)fh;

java 向上,向下转型

在对Java学习的过程中,对于转型这种操作比较迷茫,特总结出了此文.例子参考了<Java编程思想>. 目录 几个同义词 向上转型与向下转型 例一:向上转型,调用指定的父类方法 例二:向上转型,动态绑定 例三:向上转型,静态绑定 例四:向下转型 转型的误区 1.运行信息(RTTI) 2.数组类型 3.Java容器 几个同义词 首先是几组同义词.它们出现在不同的书籍上,这是造成理解混淆的原因之一. 父类/超类/基类 子类/导出类/继承类/派生类 静态绑定/前期绑定 动态绑定/后期绑定/运行时绑定

Java基础第9天+final关键字、多态(上转型,下转型)、抽象类(特点,成员特点)、接口(特点,成员特点)

1:final关键字(掌握) (1)是最终的意思,可以修饰类,方法,变量. (2)特点: A:它修饰的类,不能被继承. B:它修饰的方法,不能被重写. C:它修饰的变量,是一个常量. (3)面试相关: A:局部变量 a:基本类型 值不能发生改变 b:引用类型 地址值不能发生改变,但是对象的内容是可以改变的 B:初始化时机 a:只能初始化一次. b:常见的给值 定义的时候.(推荐) 构造方法中. 2:多态(掌握) (1)同一个对象在不同时刻体现出来的不同状态. (2)多态的前提: A:有继承或者实

对象向上、向下转型

向上转型(Son-->Father),程序会自动完成 父类 父类对象 = 子类实例 向下转型(Father-->Son),强制类型转换 子类 子类对象 = (子类)父类实例 class Father { public void tell() { System.out.println("Father tell"); } } class Son extends Father { public void tell() { System.out.println("Son

11 向上与向下转型

什么是向上转型:将子类的对象赋值给父类的引用 Student s=new Student(); Person p=s; 什么是向下转型:将父类的对象赋值给子类的引用 Student s1=new Student(); Person p=s1; Student s2=(Student)p;

对象的上转型和下转型 (instanceof关键字)

1.对象的上转型,就是多态的一种写法 格式:父类名称 对象名 = new 子类名称(): Animal animal = new Cat(); 含义:右侧创建一个子类对象,把它当作父类来使用 向上转型一定是安全的,从小范围到大范围: 猫是动物,动物不一定是猫 类似于:double num = 100 ps:对象一旦向上转型为父类,就无法调用子类特定内容 2.对象的下转型,其实就是还原的操作 格式:子类名称 对象名 = (子类名称)父类对象: 含义:将父类对象还原为本来的子类对象 Cat cat