Java多态之概念引入

多态性允许同一操作对不同对象产生不同效果,它基于继承或接口实现。在运行时,父类引用可以指向子类对象,从而调用被重写的方法。例如,Animal类有Dog和Cat两个子类,它们各自重写了eat()方法,通过Animal类型的引用an1和an2调用eat(),分别打印出“狗啃骨头或者吃shit”和“猫吃鱼”。多态提高了代码的灵活性和可维护性。

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

概念

多态性 是指 同一个操作 作用于某一类对象,可以有不同的解释,产生不同的执行结果。

产生多态的必要条件

  1. 需要存在继承或实现(接口)关系。
  2. 同样的方法调用而执行不同操作、运行不同代码(重写)。
  3. 在运行时父类或者接口的引用变量可以引用其子类的对象。

使用多态的好处

  1. 多态通过分离做什么和怎么做,从一个角度将接口和实现进行分离。
  2. 多态消除了类型之间的耦合关系。
  3. 多态的存在提高了程序的 拓展性 和后期的 可维护性

代码如下


abstract class Animal{
	public String name;
	abstract public void eat();
}

class Dog extends Animal{
	public void eat() {
		// TODO Auto-generated method stub
		System.out.println("狗啃骨头或者吃shit");
	}
}

class Cat extends Animal{
	public void eat() {
		// TODO Auto-generated method stub
		System.out.println("猫吃鱼");
	}
}

public class Test {
	public static void main(String[] args) {
		// 在运行时父类或者接口的引用变量可以引用其子类的对象
		Animal an1 = new Dog();
		Animal an2 = new Cat();
		
		an1.eat();
		an2.eat();
	}
}

运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值