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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

当多个类中出现相同功能,但是功能主体不用时可以向上抽取。
这时只抽取功能定义而不抽取功能主体。

抽象方法特点:
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. }  
复制代码




3 个回复

倒序浏览
看明白了  刚才看你上面的文字描述有点晕

看下例子后 看懂了

非常感谢你的分享
回复 使用道具 举报
  1. void sleep(){  
  2.         System.out.println("sleep....");  
  3.     }
复制代码

你这句函数是不是多余写的 还是下面忘记调用了
回复 使用道具 举报
Johnny_Hu 发表于 2015-3-9 17:10
你这句函数是不是多余写的 还是下面忘记调用了

是 在这个例子里边没有用到
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马