关于java的多态

来源:互联网 发布:百视通网络电视怎么用 编辑:程序博客网 时间:2024/05/21 12:52

对于java的多态的简单理解

   一般大学生在参加校园招聘的时候,有很多公司会问关于java中多态的问题,或者是笔试的考题中会有关于多态的题,要是基础不是太好的话一般会把自己整蒙,不知道说的到底是什么,结果会是什么样的,在这里我就简单的以我的理解和具体的举例来说明一下java的多态。
   java多态简单的讲就是父类中定义好了一个方法,子类中可以重写这个方法,那么重写的子类的方法和父类的方法就不同了,当很多时候父类的引用指向子类的对象的时候,调用两者都有的方法时是最让人疑惑的时候,也就是最典型的多态了,这时候其实很好理解,不管你父类引用指向的是子类对象还是什么,只要子类对象中重写了这个方法,那么必定调用的就是子类的这个方法。下面给出一段代码。
public class Test7 {public static void main(String args[]) {B b = new B();        b.fun1();        A a = b;        a.fun1();}}class A {    void fun1() {              System.out.println(fun2());        }        int fun2() {                return 123;        }}class B extends A {        int fun2() {                 return 456;         }}
   上面代码所运行结果都是456。为什么会是这样呢? 也就是上面所说的永远在执行实例对象的方法。即使A中有方法fun2()A的引用调用的还是子类B的fun2()方法,从而可以很好的理解多态。
   多态必须有三个条件才能实现:1.继承 2.重写 3.父类引用指向子类对象
   那么要问为什么会用多态,很简单比如说有两个类,分别是猫和狗,他们都有一个叫的方法,而且他们都是动物,那么可以定义一个动物类,让他们来继承,然后重写叫这个方法来实现叫的功能,父类中定义共通的方法以便子类中重写使用,因此可以规范代码,也能实现一定的封装功能。

0 0
原创粉丝点击