之前一直不理解多态的含义。
看了很多视频,也找了很多资料。
脑子里就是形不成多态的概念,
今天翻过来看资料,突然醍醐灌顶,明白了这个变态的多态。
写出来加深一下理解。
资料上一般都有这样的话:
多态形成的条件:
1 存在继承关系
2 存在方法覆盖
3 父类引用指向子类对象
大概一看,恩,不错,每个字都懂。可是。。。。卧槽!连起来是什么鬼!!!特别是辣个第三条!!
熟话说,无代码无JB。下面上JB。
父类
<pre name="code" class="java">
public class person
{
public void eat()
{
System.out.println("人吃饭");
}
}
子类
public class student extends person
{
public void eat()
{
System.out.println("学生吃饭");
}
}
主类
public class main
{
public static void main(String[] args)
{
//创建父类对象
person p = new person();
//调用父类方法
p.eat();
//创建子类对象
student s = new student();
//调用子类方法
s.eat();
//父类引用指向子类对象
person m = new student();
m.eat();
}
}
一个person父类
一个student子类继承了父类 (第一个条件满足了)
覆盖了父类中的eat方法 (第二个条件满足了)
好了下面来看主函数,好好的大家各实例化自己的对象多好,父类用父类的,子类用子类的。
可是,父类person说,student你给我听好了,我是你爹,我要创建你,
于是出现了
person h = new student();
这样的变态的语句,好了,现在多态就形成了。