Java学习笔记 :多态的基础语法

/*
多态的基础语法:
1、学习多态基础语法之前,我们需要普及两个概念:
  第一个:向上转型
      子 ---->父(自动类型转换)
  第二个:向下转型
      父 ---->子(强制类型转换,需要加强制类型转换符)
  注意:Java中允许向上转型,也允许向下转型,无论是向上还是向下,两种类型之间必须有继承关系,没有继承关系,编译器报错。
*/
public class Test01{
	public static void main(String[] args){
		Animal a1 = new Animal();
		a1.move();

		Cat c1 = new Cat();
		c1.move();

		Bird b1 = new Bird();
		b1.move();
     //代码可以这样写吗?
     /*
        1、Animal和Cat之间有继承关系吗?有的
		2、Animal是父类,Cat是子类
		3、Cat is a Animal,这句话能不能说通?能
		4、经过测试得知,java支持这样的语法:父类型的引用允许指向子类型的对象
		new Cat()是一个子类型的对象
		允许a2这个父类型引用指向子类型对象
	 */
         Animal a2 = new Cat();
		 Animal a3 = new Bird();
         /*多态:多种形态
		   分析,a2.move()
		   首先,java程序分为编译阶段和运行阶段。
		   编译阶段,编译器只知道a2的类型是Animal,所以编译器在检查语法的时候,会去Animal.class字节码文件中找到move()方法,编译通过
		   运行阶段,在堆内存中创建的java对象是Cat对象,所以Move的时候,真正参与move的对象是一只猫。所以运行阶段会动态执行cat对象的move()方法。

		   多态表示多种形态,编译的时候是一种形态,运行的时候是另一种形态
		 */
		 a2.move();
		 a3.move();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值