多态:
定义:某一类事物的多种存在形态。
1,多态的体现
父类的引用指向了自己的子类对象
父类的引用也可以接受自己的子类对象
2,多态的前提
必须是类与类之间有关系,要么继承,要么实现。
通常还有一个前提:存在覆盖。
3,多态的好处:
多态的出现提高了程序的扩展性。
4,弊端:
提高扩展性,但是只能使用父类的引用访问父类中的成员
多态成员函数特点:
成员函数在多态调用时,编译看左边,运行看右边。
多态中,静态成员函数的特点:
无论编译和运行,都参考左边。
静态方法不访问对象特有数据,可以只用类名调用。
静态方法进内存就绑定方法所属的类上。父类指向子类时,静态调用不同,父类走父类子类走子类。
*成员变量的特点:*
无论编译和运行,都参考左边(引用型变量所属的类)。
abstract class Student {
public abstract void study();
public void sleep(){
System.out.println("student sleep");
}
}
class BaseStudent extends Student{
public void study(){
System.out.println("BaseStudent study");
}
public void sleep(){
System.out.println("BaseStudent sleep");
}
}
class AdvStudent extends Student{
public void study(){
System.out.println("AdvStudent study");
}
public void sleep(){
System.out.println("AdvStudent sleep");
}
}
class DoStudent{
public void doStudent(Student stu){
stu.study();
stu.sleep();
}
}
public class TestDemo{
public static void main(String[] args) {
DoStudent ds =new DoStudent();
ds.doStudent(new BaseStudent());
ds.doStudent(new AdvStudent());
}
}