java再复习——多态的理解
2017-02-22 16:04
197 查看
每当有人问我什么是多态的时候,我并不知道到底该如何去回答。我只知道在代码中什么时候该使用接口,什么时候使用父类,继承,使用多态的特性来编程,但是到底该如何回答,今天我想强迫自己总结一下。
多态的定义:多种形态,可以实现动态联编,就是在编译的时候是一种形态,在运行的时候绝对它的真正形态。
这话到底是他妈的什么意思?
简单点,说话的方式再简单点,对应代码就是:
对应语法就是,父类的引用指向子类的实例,在运行的时候,具体执行谁的方法,是由引用指向的真正的实例所决定的。
这样做的好处就是,使的的程序可以很好的扩展以及大大提供程序的灵活性。
比如:
有一个方法
这就是多态的语法与应用。
其实就是为了程序的扩展与改变。
多态的定义:多种形态,可以实现动态联编,就是在编译的时候是一种形态,在运行的时候绝对它的真正形态。
这话到底是他妈的什么意思?
简单点,说话的方式再简单点,对应代码就是:
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上述的那行代码还是不用变。
这就是多态的语法与应用。
其实就是为了程序的扩展与改变。
相关文章推荐
- java复习2 封装、继承、多态的理解
- 理解JAVA多态
- 理解JAVA多态
- JAVA多态的理解
- java多态的理解
- 全面理解String(JAVA复习)
- 我理解java的多态
- 全面理解String(JAVA复习)
- 理解java中的多态,多态的例子
- Java 多态的理解
- Java复习 9继承与多态
- 理解JAVA多态
- java多态的理解
- JAVA中几个易混淆关键词的理解:行为,隐藏,组合和继承,覆写和重载,多形(多态)性,动态绑定,上溯造型,抽象类,接口
- 对JAVA多态的理解
- 理解Java多态
- 如何理解和应用Java的多态 推荐
- 理解java多态的概念和作用
- JAVA多态的理解
- 理解JAVA多态,总结整理