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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yepat 初级黑马   /  2013-5-26 11:30  /  1744 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java中抽象方法和普通方法有什么区别

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

7 个回复

倒序浏览
这个不是给你说了  你就能一目了然的    希望你可以多看看老师的视频  这就不回答了
回复 使用道具 举报
本帖最后由 王瀛 于 2013-5-26 15:51 编辑

当我们描述一类事物,该事物的某些行为的作用(即功能,相当于函数名、方法名)能够确定,但是具体怎么去做,有很多不同的情况(不能单一的确定)时,我们就将这个功能的名称先确定下来,而如何实现这个功能,就留给后人去补充(子类继承并复写)。这样就形成了抽象方法。

为了标识这类方法,Java中使用abstract修饰符修饰。

举个例子:将NBA看作一个类,其中的得分看作一种方法,而实现这个方法有很多种方式:可以投2分,可以投3分,可以罚球得分,可以扣篮得分,可以空接得分...于是
  1. abstract class NBA
  2. {
  3.         abstract 得分();
  4. }
  5. class 诺维斯基 extends NBA
  6. {
  7.     得分(){无解后仰中投}
  8. }
  9. class 詹姆斯 extends NBA
  10. {
  11.     得分(){推土机突破上篮}
  12. }
  13. class 布雷克格里芬 extends NBA
  14. {
  15.         得分(){无节操暴扣}
  16. }
复制代码
子类继承抽象类后,必须重写父类中的抽象方法。换个角度说就是,抽象方法具有强制性,强制子类去复写它。

点评

牛人  发表于 2013-5-27 00:52

评分

参与人数 1技术分 +1 收起 理由
Sword + 1 一看代码就知道是nba球迷,呵呵.

查看全部评分

回复 使用道具 举报
抽象方法的特点:
1. 抽象方法一定定义在抽象类中。
2. 继承抽象类的类,必须覆盖其抽象方法。

例子如下:
  1. //抽象类
  2. abstract class A {
  3.         // 抽象方法
  4.         abstract public void method1();

  5.         // 非抽象方法
  6.         public void method2() {
  7.                 System.out.println("method2");
  8.         }
  9. }

  10. // B类继承抽象类A
  11. class B extends A {

  12.         // 必须覆盖抽象方法
  13.         public void method1() {
  14.                 System.out.println("method1");
  15.         }
  16. }
复制代码
回复 使用道具 举报
王瀛 发表于 2013-5-26 15:49
当我们描述一类事物,该事物的某些行为的作用(即功能,相当于函数名、方法名)能够确定,但是具体怎么去做, ...

知道了 谢谢。。
回复 使用道具 举报
java中抽象方法和普通方法有什么区别?
1.抽象方法可以不写方法的具体内容。因为抽象方法可以说是总结出来的,在不同子类的实现方法并不相同,所以就先定义一个不写内容的方法放在那里,让子类去复写。
2.子类继承或者实现的类中有抽象方法,那么抽象方法是必须被复写的。如果不复写,你这个类也就有了抽象方法变成了抽象类就违背本意了。
就想到这两点欢迎补充。
回复 使用道具 举报
楼主多看看视频,概念上的东西,多用用就明白其中的区别了
回复 使用道具 举报
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马