浅谈java多态的理解(学习笔记)

1.使用多态的理由

  • 对需要管理的类进行抽象之后提供一个接口,让不同的类对象实现不同的功能,而可以在该类中提供调用方法,不用管类型不同(一视同仁),不用去管各类的实现细节,达到了应用与实现的分离。

实例:
假设现在有3个class:自行车(bicycle),小轿车(car),卡车(truck),分别提供了ride(), run(), lauch()不同的启动方式。三个方法都是启动车,如果没有多态,代码将会是这样

// 实现
Bicycle bicyle = new Bicycle();
Car car = new Car();
Truck truck = new Truck();


// 使用部分
bicyle.Ride();
car.Run();
truck.Launch();

运用传统的实现方法那就是一部分是类的实现;另一部分是类的使用,如果其中的Car类中的run方法被修改,那么应用部分同样需要修改,增加了代码维护的难度,这样的结果不是我们愿意看到的。

//实现部分
class Vehicle{
	public void start(){
		System.out.print("我是交通工具");
	}	
}

class Bicycle{
	public void start(){
		System.out.print("我是Bicycle");
	}	
}

class Car{
	public void start(){
		System.out.print("我是Car");
	}	
}

class Truck{
	public void start(){
		System.out.print("我是Truck");
	}	
}

使用
Vehicle tool = new Bicycle();  // 自行车启动
tool.start();


tool = new Car();  // 轿车启动
tool.start();

tool = new Truck();  // 自行车启动
tool.start();

运用多态后,将三类共有的东西抽象出来,放到一个总类(Vehicle)中去,提供一个可供子类实现的接口。

2.多态的实现方式

1. 重载:通过参数的变动实现
2. 重写:不同类对抽象类的不同实现方式
3. 对象多态(上转型实现):与重写和重载搭配实现,其中java的动态内存绑定机制,对于多态的实现非常重要。

3.java动态内存绑定机制

  • 调用对象方法的时候,该方法会和该对象内存地址/运行类型绑定
  • 当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用

本章内容参考:
【1】 程序员应如何理解多态
【2】韩顺平老师的java基础入门课

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

楚禾Noah

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值