java:多态

本文通过具体的Java代码示例介绍了多态的概念及其在继承中的应用。详细展示了父类引用指向子类对象的情况,并解释了方法重写及如何调用不同类的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

继承是多态的基础

多态分为 *方法多态* *引用多态*

引用多态:父类可以指向子类对象引用,也可以指向本类对象引用。

具体表现为声明对象:   

 父类   对象名=new  父类构造()   

父类   对象名=new  子类构造()

对象名  前面是类型引用 , new “空格” X类构造()决定属于什么类的对象。

方法的多态具体表现:

当子类中出现同名方法时,优先调用本类方法,可以理解为重写。

子类没有出现同名方法则继续调用父类方法。

package Animal;

//多态示例
public class Animal {
	public void eat() { // 父类方法
		System.out.println("动物吃肉");
	}
}

package Animal;

public class Cat extends Animal {
	public void eat1() {			//子类独有的方法
		System.out.println("猫喜欢吃鱼");
	}
}

package Animal;

public class dog extends Animal {

	public void eat() { // 子类方法重写
		System.out.println("小狗吃肉");
	}

	public void wacthdoor() {			//子类独有方法
		System.out.println("狗可以看门");
	}
}

package Animal;

public class run {

	public static void main(String[] args) { // 以下为多态示例。

		Animal Animal = new Animal(); // 父类引用 对象名=new 父类实例化

		Animal dog = new dog(); // }
								// }父类引用 对象名=new 子类实例化
		Animal cat = new Cat(); // }

		// dog obj3=new Animal(); // 禁止 :子类引用 对象名=new 父类实例化 //编译器报错

		Animal.eat();
		dog.eat();	//子类中eat方法被重写了,优先调用本类(对象所输类)方法。
		
		cat.eat();	//子类中没有同名方法,所以方法没有被重写,只能调用父类方法。

		// dog.wacthdoor(); //父类引用的子类对象不允许调用子类方法

		// cat.eat1(); //父类引用的子类对象不允许调用子类方法
	}
}


运行结果:

动物吃肉

小狗吃肉

动物吃肉



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值