你的位置:首页 > Java教程

[Java教程]java了解多态(菜鸟出征)


本人大一狗,内容仅为个人的初体会,有误之处请见谅。

初学者可能刚接触一些新名词会感觉好像很厉害的样子,有种不明觉厉的样子。

比如多态,泛型,继承,接口。其实这些也并不是很难,不要被名字所吓到,不用怕,慢慢就会理解他了。

讲一下多态,我认为多态是建立在继承的基础之上的。

我们想看看继承。

class father{  String sex="man";  public void sport()  {    System.out.println("太极");  }} class son extends father{  String sex="small boy";  int age=15;  public void sport()  {    System.out.println("打球");  }}public class DuotaiDemo{    public static void main(String[] args)  {
    father xiaoming=new son();

 

    System.out.println(xiaoming.age);  }}

这里我们用了 子类继承了父类,子类继承了父类的属性和方法,比如sex 和sport方法

class son extends father{  }

即使在继承的时候没有任何的方法和属性,但是因为继承,此时子类有了父类的方法和属性。

-------------------------------------------

所谓多态就是

 father xiaoming=new son();

这里子类对象父类引用,刚开始这里理解可能有点绕,所以我们把他分解一下。

new son()这里创建了一个对象,然后我们用了一个父类型 来引用他即father类

本来继承就是大盒装小盒,我们创建了一个大盒,这是我们用小盒来指向这个大盒。

小盒里面装的东西东西大盒有,但是大盒装的(小盒以外)的东西没有。

同样我们父类的属性方法子类都有,但是子类额外的属性方法,父类没有

而多态就是用一个小盒引来指向大盒

class son extends father{

  public void homework()
  {
    System.out.println("do homework");
  }

}

比如这里子类 额外添加了作业方法,父类是没有。

那么我们回到多态,我们的子类对象有父类来引用,那么此是这个引用的变量 调用homework是行不通的

因为父类并没有homework方法,大盒子里面的(小盒以外)的东西没有

而如果是调用sport方法,调用的是子类的方法。(这是特殊之处)

我的简单理解是这样,这个父类引用,就是指的是一个父类对象,没有说指向子类对象。

只不过他有点特殊,如果有和子类共有的方法,调用的就是子类的方法。(当然这不严谨)

仅此而已,其他没有什么特殊,还是照常一样,比如调用对象的sex,此时还是父类的。