多态中的上下转型
2021/10/13 23:17:47
本文主要是介绍多态中的上下转型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
向上转型
从子类到父类
父类引用指向子类对象
向下转型
从父类到子类
父类引用转为子类对象
public class Animal { public void eat() { System.out.println("动物吃东西"); } }
public class Cat extends Animal{ public void eat() { System.out.println("猫吃鱼"); } public void playGame() { System.out.println("猫玩捉迷藏"); } }
public class AnimalDeom { public static void main(String[] args) { //上转型 Animal a = new Cat(); a.eat(); // a.playGame(); 向上转型的父类对象中必须和子类有共同的方法 Cat c = new Cat(); c.playGame(); //下转型 Cat s = (Cat)a; s.playGame(); s.eat(); } }
这几段代码不难理解,但需要着重注意上转型和下转型几个关键语句:
上转型:
Animal a = new Cat(); Animal 类的对象a,后面是开辟了一个空间Cat,从多态的概念上理解就是说,Cat有属于自己的属性和行为(Cat里面有两个行为(方法)),它可以用自己的类创建对象,这样所创建对象的属性和行为都是自己类里面的, 但是它也可以通过父类来创建对象,这里的Animal相当于动物类,就是Cat既有属于自己的属性,也有属于动物的属性,当它用动物类创建对象后,便失去了自己独有的属性,这也就是为什么编译不出a.playGame(); 下转型:
Cat s = (Cat)a;
左边是子类对象Cat,后面s相当于变量名,后面的相当于把父类对象给强制转换成子类对象。
这篇关于多态中的上下转型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-26JavaScript入门教程:从零开始学习JavaScript编程
- 2024-12-26JavaScript入门教程:从零开始学习JavaScript
- 2024-12-26JS编程入门指南:从零开始学习JavaScript
- 2024-12-25Java编程面试题详解与解答
- 2024-12-25TS基础知识详解:初学者必看教程
- 2024-12-252024面试题解析与攻略:从零开始的面试准备指南
- 2024-12-25数据结构与算法学习:新手入门教程
- 2024-12-25初学者必备:订单系统资料详解与实操教程
- 2024-12-24内网穿透资料入门教程
- 2024-12-24微服务资料入门指南