本人大一狗,内容仅为个人的初体会,有误之处请见谅。
初学者可能刚接触一些新名词会感觉好像很厉害的样子,有种不明觉厉的样子。
比如多态,泛型,继承,接口。其实这些也并不是很难,不要被名字所吓到,不用怕,慢慢就会理解他了。
讲一下多态,我认为多态是建立在继承的基础之上的。
我们想看看继承。
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,此时还是父类的。