黑马程序员技术交流社区

标题: 抽象类 [打印本页]

作者: linder_qzy    时间: 2015-3-9 16:41
标题: 抽象类
当多个类中出现相同功能,但是功能主体不用时可以向上抽取。
这时只抽取功能定义而不抽取功能主体。

抽象方法特点:
1.抽象方法必须存在于抽象类中
2.抽象方法和抽象类都必须被abstract关键字所修饰
3.抽象类不可以被new创建,没有意义
4.抽象类中的方法要被使用时,必须由子类重写所有父类的抽象方法后建立子类对象调用。
如果子类只重写部分抽象方法那么子类还是一个抽象类.

抽象类和一般类没有大的不同。
该如何描述事物还怎么描述,只不过该事物出现了一些看不懂的部分,这些不确定的部分也是该事物的功能需要明确出现。

但是无法定义主体,通过抽象方法来表示。

抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象。
抽象类比一般类多了抽象函数,抽象类不能实例化。

  1. abstract class Student  
  2. {  
  3.     abstract void study();//定义抽象方法,具体内容由其子类实现  
  4.     void sleep(){  
  5.         System.out.println("sleep....");  
  6.     }  
  7. }  
  8. class BasicStudent extends Student  
  9. {  
  10.     void study(){  
  11.     System.out.println("basic study");  
  12.     }  
  13. }  
  14. class AdviceStudent extends Student  
  15. {  
  16.     void study(){  
  17.     System.out.println("advice study");  
  18.       
  19.     }  
  20. }  
  21. class Demo03_Abstract  
  22. {  
  23.     public static void main(String[] args)   
  24.     {  
  25.         new BasicStudent().study();  
  26.         new AdviceStudent().study();  
  27.         /*
  28.         输出结果
  29.         basic study
  30.         advice study
  31.         */  
  32.     }  
  33. }  
复制代码





作者: Johnny_Hu    时间: 2015-3-9 17:06
看明白了  刚才看你上面的文字描述有点晕

看下例子后 看懂了

非常感谢你的分享
作者: Johnny_Hu    时间: 2015-3-9 17:10
  1. void sleep(){  
  2.         System.out.println("sleep....");  
  3.     }
复制代码

你这句函数是不是多余写的 还是下面忘记调用了
作者: linder_qzy    时间: 2015-3-9 22:00
Johnny_Hu 发表于 2015-3-9 17:10
你这句函数是不是多余写的 还是下面忘记调用了

是 在这个例子里边没有用到




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2