Java 多态 向上转型(Upcasting)向下转型(Downcasting)

本文详细介绍了Java中的多态性,包括向上转型(Upcasting)和向下转型(Downcasting)。多态是面向对象编程的重要特性,允许父类型引用指向子类型对象,实现静态和动态绑定。文章通过实例代码展示了多态的应用,并强调了方法覆盖在多态中的关键作用,同时也探讨了静态方法与多态的关系,指出静态方法不能实现多态的效果。
摘要由CSDN通过智能技术生成

Java多态
多态(Polymorphism)属于面向对象三大特征之一,它的前提是封装形成独立体,独立体之间存在继承关系,从而产生多态机制。多态是同一个行为具有多个不同表现形式或形态的能力。
现实中,比如我们按下 F1 键这个动作:

● 如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;

● 如果当前在 Word 下弹出的就是 Word 帮助;

● 如果当前在 Windows 下弹出的就是 Windows 帮助和支持。

多态就是“同一个行为”发生在“不同的对象上”会产生不同的效果。
那么在java中多态是如何体现的呢?
在java中允许这样的两种语法出现,一种是向上转型(Upcasting),一种是向下转型(Downcasting),向上转型是指子类型转换为父类型,又被称为自动类型转换,向下转型是指父类型转换为子类型,又被称为强制类型转换。请看下图:
在这里插入图片描述
在java语言中有这样的一个规定,无论是向上转型还是向下转型,两种类型之间必须要有继承关系,没有继承关系情况下进行向上转型或向下转型的时候编译器都会报错,这一点要死记硬背哦!
接下来我们来看一段代码:
Animal 类

public class Animal {
   
	public void move(){
   
		System.out.println("Animal move!");
	}
}

继承Animal类的Cat类

public class Cat extends Animal{
   
	//方法覆盖
	public void move(){
   
		System.out.println("走猫步!");
	}
	//子类特有
	public void catchMouse(){
   
		System.out.println("抓老鼠!");
	}
}

继承Animal类的Bird类

public class Bird extends Animal{
   
	//方法覆盖
	public void move(){
   
		System.out.println("鸟儿在飞翔!");
	}
//子类特有
public void sing(){
   
	System.out.println("鸟儿在歌唱!");
	}
}

Test类

public class Test01 
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值