JAVA 多态向下转型

package Demo513.Multi;

public abstract class Animal {    public static void main(String[] args) {        Animal animal =new Cat();        animal.eat();        //往下转型:必须保证对象创建的就是猫,        Cat cat=(Cat) animal;        //就可以引用子类:Cat类的方法        cat.CatchMice();        Animal Dog=new Dog();        Dog.eat();        //测试一个对象是否为一个类        if(Dog instanceof Animal) {            //会报错,转型错误            Dog dog=(Dog) animal;            dog.eat();        }        }

    void eat(){    }}class Cat extends Animal{    @Override    void eat(){        System.out.println("我吃鱼");    }    void CatchMice(){        System.out.println("猫抓老鼠");    }}class Dog extends Animal{    void eat(){        System.out.println("我吃骨头");    }}运行代码↓

 

原文地址:https://www.cnblogs.com/Ssinoo/p/10861346.html

时间: 2024-10-03 21:41:34

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

Java 多态 向下转型

向下转型: 子类引用指向父类对象,此处必须强制转换,可以调用子类特有方法.例: Animal two = new Cat(); Cat temp = (Cat)two; 若满足转型条件时才能进行强转. 判断一个对象是否是某个类的实例: 原文地址:https://www.cnblogs.com/CPU-Easy/p/12262276.html

Java多态的体现--转型

向上转型: 子类的对象赋值给父类的引用: Student s=new Student(); Person p=s; 也就是 Person p=new Student(); 一个引用能够调用哪些成员(变量和方法),取决于这个引用的类型(即父类) 一个引用调用的是哪一个方法,取决于这个引用所指的对象(即子类) 向下转型: 将父类的对象赋值给子类的引用 Student s1=new Student(); Person p=s1; Student s2=(Student)p; 也就是 Person p=

《java入门第一季》之面向对象(多态向下转型)

上一篇博客(http://blog.csdn.net/qq_32059827/article/details/51328638)最后对多态的弊端做了显示,这里解决这个弊端.如下: /* 多态的弊端: 不能使用子类的特有功能. 我就想使用子类的特有功能?行不行? 行. 怎么用呢? A:创建子类对象调用方法即可.(可以,但是很多时候不合理.而且,太占内存了) B:把父类的引用强制转换为子类的引用.(向下转型) 对象间的转型问题: 向上转型: Fu f = new Zi(); 向下转型:(容易出现问题

java(向上向下转型)

在Java编程中经常碰到类型转换,对象类型转换主要包括向上转型和向下转型. 5.13.1 向上转型 我们在现实中常常这样说:这个人会唱歌.在这里,我们并不关心这个人是黑人还是白人,是成人还是小孩,也就是说我们更倾向于使用抽象概念"人".再例如,麻雀是鸟类的一种(鸟类的子类),而鸟类则是动物中的一种(动物的子类).我们现实中也经常这样说:麻雀是鸟.这两种说法实际上就是所谓的向上转型,通俗地说就是子类转型成父类.这也符合Java提倡的面向抽象编程思想.来看下面的代码: package a.

Java面向对象之多态(向上向下转型) 入门实例

一.基础概念 多态: 重点是对象的多态性.某一事物的多种体现形态. 多态的作用: 1.提高了代码的扩展性,后期出现的功能,可以被之前的程序所执行. 2.不能使用子类特有的功能.只能使用覆盖父类的功能. 多态的前提: 1.必须要有继承关系或者实现关系. 2.通常对方法进行重写.覆盖. 3.父类或者接口要引用指向子类对象. 多态向上转型: 1.提高程序的扩展性,隐藏了具体子类型 2.只能使用父类中的功能,不能使用子类特有的功能.功能被限定了. 多态向下转型: 1.可以使用子类型的特有功能. 2.必须

8.JAVA-向上转型、向下转型

父子对象之间的转换分为了向上转型和向下转型,它们区别如下: 向上转型 : 通过子类对象(小范围)实例化父类对象(大范围),这种属于自动转换 向下转型 : 通过父类对象(大范围)实例化子类对象(小范围),这种属于强制转换 1. 向上转型 示例1-向上转型 class A { public void print() { System.out.println("A:print"); } } class B extends A { public void print() { System.ou

重新认识java(五) ---- 面向对象之多态(向上转型与向下转型)

多态,大概每个人都知道.但是,又有几个人真的理解什么是多态.多态有哪些细节呢?如果你看到这篇文章的名字,脑海中对多态没有一个清晰的概念,不妨点进来看看,也许会有收获. 什么是多态 简单的理解多态 多态,简而言之就是同一个行为具有多个不同表现形式或形态的能力.比如说,有一杯水,我不知道它是温的.冰的还是烫的,但是我一摸我就知道了.我摸水杯这个动作,对于不同温度的水,就会得到不同的结果.这就是多态. 那么,java中是怎么体现多态呢?我们来直接看代码: public class Water { pu

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

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

Java多态之向下转型

目录 Java多态之向下转型 强制类型转换 instanceof Java多态之向下转型 往期回顾:我们学习了向上转型和动态绑定的概念,可以知道在继承关系中,将一个子类对象赋值给父类的引用变量,调用父类的方法,在实际运行时,就可以根据子类中重写的方法执行不同的操作.其中有一个弊端,就是在向上转型的过程中,其实丢失了一部分子类特有的功能,毕竟它只允许调用父类中的方法.那么,如何在这时调用子类中的方法呢,这时就需要与向上转型相对应的方法,就是所谓的:向下转型. 向上转型是自动就能完成的,向下转型则需