java再复习——多态的理解

每当有人问我什么是多态的时候,我并不知道到底该如何去回答。我只知道在代码中什么时候该使用接口,什么时候使用父类,继承,使用多态的特性来编程,但是到底该如何回答,今天我想强迫自己总结一下。

多态的定义:多种形态,可以实现动态联编,就是在编译的时候是一种形态,在运行的时候绝对它的真正形态。

这话到底是他妈的什么意思?

简单点,说话的方式再简单点,对应代码就是:

public class Test {
	public static void main(String[] args) {
		Person person = new Person();
		Person son = new Son();
		person.say();
		son.say();
	}
}

class Person{
	public void say(){
		System.out.println("person fuck");
	}
}

class Son extends Person{
	public void say(){
		System.out.println("son fuck");
	}
}
结果:

person fuck
son fuck

对应语法就是,父类的引用指向子类的实例,在运行的时候,具体执行谁的方法,是由引用指向的真正的实例所决定的。


这样做的好处就是,使的的程序可以很好的扩展以及大大提供程序的灵活性。

比如:

有一个方法

public class Test {
	
	public void TestSay(Person person){
		person.say();
	}

}
形参是Person,这就意味着Person实例以及Son实例都可以传入,而且内部都是直接调用say方法,不用关心到底是谁,在程序真正运行的时候会去决定到底是谁,这样在编写程序的时候,灵活性就极大了,假设如果没有这种特性的存在,那么首先需要编写两个方法,来分别接受Person参数和Son参数,而且如果以后有了Son2,Son3,Son4类的话,还需要去大量的增加和修改代码,程序根本没有办法应对扩展,而如果有了多态的特性,则上述代码根本不用变,就算以后出来了Girl1,Girl2上述的那行代码还是不用变。

这就是多态的语法与应用。
其实就是为了程序的扩展与改变。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值