详谈多态

       多态性来自于希腊语,意思是“有许多形态”。在面向对象的软件技术中,多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。也就是说,在类等级的不同层次中可以共享(公用)一个行为(方法)的名字,然而不同层次中的每个类却按自己的需求来实现这个行为。当对象接收到发送给它的消息时,根据该对象所属的类 动态选用在该类中定义的实现方法。

      多态性机制不仅增加了面向对象软件系统的灵活性,进一步减少了信息冗余,而且显著提高了软件的可重用性和可扩充性。当扩充系统功能增加新的实体类型时,只需派生出与新实体类相应的新的子类,并在派生的新的派生出的子类中定义符合该类需要的方法,完全无需修改原有的代码,甚至不需要重新编译原有的程序(仅需要编译新派生类的源程序,在与原有的程序连接)

 

在Java语言中,多态主要有以下两种表现形式: 

编译时多态----方法的重载(Overload)

重载是指同一个类中有多个同名的方法,但这些方法有不同的参数,因此在编译时就可以确定到底调用哪个方法,它是一种编译时多态。重载可以看成一个类中方法的多态性。

方法重载的定义:一个类中有多个同名方法(构造方法或普通方法),在调用这些方法时,到底调用哪个方法取决于调用方法时传入的参数的数据类型和个数。 

public class Teacher {

	public static void print(int age, String name) {
		System.out.println(age + "," + name);
	}

	public static void print(String name, int age) {
		System.out.println(name + "," + age);
	}

	public static void main(String[] args) {
		print(33, “王小红”);// 依次传入int类型和String类型数据,所以调用第一个方法
		print("王小红", 33);//依次传入String类型和int类型数据,所以调用第二个方法
	}
}

 

运行时多态----方法的重写或覆盖(Override

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值