A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Johnny_Hu 中级黑马   /  2015-3-16 22:10  /  569 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、多态的体现
父类的引用指向自己的子类对象
父类的引用也接收自己的子类对象
1
2
Animal cat = new Cat();
Animal dog = new Dog();
如果想要调用子类的特有方法时
强制将父类的引用 转换成子类类型
1
Cat c = (Cat)cat
多态自始至终都是子类对象在做变化

2、多态的前提
必须是类与类之间有关系,要么继承,要么实现。
通常还有一个前提:存在覆盖
3、多态的好处
多态的出现提高程序的扩展性。
4、多态的弊端
提高了扩展性,但是只能使用父类的引用访问父类中的成员
  1. package com.hupingyan.DuoTai;

  2. public class DuoTai {

  3.         public static void main(String[] args)
  4.         {
  5.                 DoStudent ds = new DoStudent();
  6.                 ds.doSome(new baseStudent());
  7.                 ds.doSome(new advStudent());
  8.                
  9.         }
  10.        
  11. }

  12. class DoStudent
  13. {
  14.         public void doSome(Student stu)
  15.         {
  16.                 stu.Study();
  17.                 stu.sleep();
  18.         }
  19. }

  20. abstract class Student
  21. {
  22.         public abstract void Study();
  23.         public void sleep()
  24.         {
  25.                 System.out.println("睡觉");
  26.         }
  27. }

  28. class baseStudent extends Student
  29. {
  30.         public void Study()
  31.         {
  32.                 System.out.print("学习Java");
  33.         }
  34.         //public void sleep(){}
  35. }

  36. class advStudent extends Student
  37. {
  38.         public void Study()
  39.         {
  40.                 System.out.print("学习HTML");
  41.         }
  42. //        public void sleep(){}
  43. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马