黑马程序员___关于多态

来源:互联网 发布:用excel预测数据 编辑:程序博客网 时间:2024/05/17 20:12

------- android培训、java培训、期待与您交流! ----------

多态:
 A. 父类或者接口指向自己的子类对象
    格式: Fu f = new Zi();  
错误格式: Zi zi = new Fu();
  B. 调用方法的时候,运行的是子类重写后的方法
  C. 调用成员变量的时候,运行的是父类的成员变量
  D. 在多态中,只能调用子类父类共有方法,不能调用子类的特有方法!!多态的弊端
class Fu{
   int age = 70;
   public void teacher(){
      System.out.println("讲的是汉语");
   }
}
class Zi extends Fu{
   int age = 40;
   public void teacher(){
    System.out.println("讲的是英语");
   }
   
   public void playGame(){
      System.out.println("打游戏");
   }
}
class DuoTaiDemo{
   public static void main(String[] args){ 
          //父类或者接口的引用,指向自己的子类对象   
  Fu  d= new Zi();
  d.teacher();//讲英语
  System.out.println(d.age);//父亲的年龄,70岁
  //调用子类的特有方法,打游戏,必须将已经提升为父类类型的对象,转成子类类型
  //目标类型 变量 = (目标类型)被转的变量
   Zi z = (Zi)d;
   z.playGame();
   System.out.println(z.age);
   }
}


 E. 调用子类特有方法,必须进行类型的强制转换,将提升为父类类型的子类对象,转回子类的类型,手动!!
 F. 保证程序的安全性,避免发生类型转换异常ClassCastException,采用instancof运算符,进行健壮性判断
     变量 instanceof 类名 如果是返回真 
     转换方法     目标类型 变量 = (目标类型)被转的变量
 G. 只有非静态的成员方法,编译看父类,运行看子类






   
------- android培训、java培训、期待与您交流! ----------

0 0
原创粉丝点击