黑马程序员_java_面向对象_多态

来源:互联网 发布:孙楠 知乎 编辑:程序博客网 时间:2024/06/05 18:08

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

多态:事物的多种体现形态。
 1,多态的体现:匪类的引用指向了自己的子类对象,父类的引用也可以接受自己的子类对象。
 2,多态的前提: 必须类与类有关系,继承或者实现。
 3,多态的好处:提高了扩展性,但是只能用父类的引用访问父类中的成员
多态在非静态成员函数特点:
 在编译时期,参阅引用变量所属类是否有调用方法,如果有,编译通过,没有,编译失败。
 在运行时期, 参阅对象所属的类中是否有调用方法。
 简单就是说:函数在多态调用时,编译看左边,运行看右边。
在多态中,静态成员,静态函数:无论编译和运行,都参考左边(引用型变量所属的类)。
abstract class Student{
 public abstract void study();
 public void sleep(){
  System.out.println("天天睡觉");
 }
}
class DoStudent{
 public void do(Student s){
  s.study();
  s.sleep();
}
}

class BaseStudent extends Student{
 public void study(){
  System.out.println("bese study");
}
}
class AdvStudent extends Student{
 public void study(){
  System.out.println("adv study");
}
 public void sleep(){
  System.out.println("夜夜睡觉");
}
}
public class Test{
 public static void main(String args []){
  DoStudent ds = new DoStudent();
  ds.do(new BaseStudent());
  ds.do(new AdvStudent());
}
}
         
0 0