小结多态
1. 多态的体现
父类的引用指向子类对象
2. 多态的前提
类与类之间要存在关系,要么是继承,要么是实现关系。但存在覆盖。
3. 多态的好处
提高了代码的复用性,与扩展性。
abstract class fu
{
abstract void sleep();
}
class fdog extends fu
{
public void eat()
{
System.out.println("chi shi");
}
public void sleep()
{
System.out.println(" fdog sleep方法");
}
}
class cat extends fu
{
public void sleep()
{
System.out.println("cat sleep");
}
}
class tosleep
{
public void yao(fu en)
{
en.sleep();
}
}
public class liyi5
{
public static void main(String[] args)
{
tosleep a=new tosleep();
a.yao(new fdog());
a.yao(new cat());
}
}
4. 多态成员函数的特点(父类引用指向子类)
编译时期,参阅引用的类是否有此方法,若没有则编译失败,若有则编译成功。
运行时期,参阅等号右边对象是否有此方法,若有则运行成功,若没有则运行失败。
5. 多态中成员变量的特点(父类引用指向子类)
无论编译与运行都参照引用。
6. 多态中静态成员方法
无论编译与运行都参照引用,静态没有覆盖方法。
7. 接口的多态
interface li
{
void p();
}
class zi implements li
{
public void p()
{
System.out.println("zi 1");
}
}
class sound implements li
{
public void p()
{
System.out.println("haohao e");
}
}
public class liyi5
{
void useli(li pp)
{
pp.p();
}
public static void main(String[] args)
{
liyi5 a=new liyi5();
a.useli(new zi());
a.useli(new sound());
}
}