黑马程序员技术交流社区
标题:
JavaSE面向对象(多态)
[打印本页]
作者:
Johnny_Hu
时间:
2015-3-16 22:10
标题:
JavaSE面向对象(多态)
1、多态的体现
父类的引用指向自己的子类对象
父类的引用也接收自己的子类对象
1
2
Animal cat = new Cat();
Animal dog = new Dog();
如果想要调用子类的特有方法时
强制将父类的引用 转换成子类类型
1
Cat c = (Cat)cat
多态自始至终都是子类对象在做变化
2、多态的前提
必须是类与类之间有关系,要么继承,要么实现。
通常还有一个前提:存在覆盖
3、多态的好处
多态的出现提高程序的扩展性。
4、多态的弊端
提高了扩展性,但是只能使用父类的引用访问父类中的成员
package com.hupingyan.DuoTai;
public class DuoTai {
public static void main(String[] args)
{
DoStudent ds = new DoStudent();
ds.doSome(new baseStudent());
ds.doSome(new advStudent());
}
}
class DoStudent
{
public void doSome(Student stu)
{
stu.Study();
stu.sleep();
}
}
abstract class Student
{
public abstract void Study();
public void sleep()
{
System.out.println("睡觉");
}
}
class baseStudent extends Student
{
public void Study()
{
System.out.print("学习Java");
}
//public void sleep(){}
}
class advStudent extends Student
{
public void Study()
{
System.out.print("学习HTML");
}
// public void sleep(){}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2