黑马程序员技术交流社区

标题: JAVA中的抽象类,如果定义了一个抽象类到底起什么作用? [打印本页]

作者: 梁健    时间: 2011-11-18 21:06
标题: JAVA中的抽象类,如果定义了一个抽象类到底起什么作用?
请教各位高手,因为我是刚刚接触JAVA没多久,(看了几天基础视频),正学到抽象类合接口这一块,所以有些地方不明白,还忘高手讲的明白点!谢谢!本人感激不尽!
作者: 徐杨    时间: 2011-11-18 21:08
抽象类就是子类不断向上抽取而来的,只抽取了子类的功能声明,而没有抽取子类的具体功能内容。
所以该功能是抽象的,需要定义在抽象类中。
抽象类的特点:
1.抽象类和抽象方法必须用abstract关键字修饰
2.抽象方法一定要存放在抽象类中。
3.抽象类不可以被实例化。也就是不可以通过该类建立对象。
        因为抽象类建立对象后,调用抽象方法没意义。
4.只有抽象类的子类将抽象类中的抽象方法全都覆盖掉,该子类就可以了建立对象了。
        如果只是部分覆盖,该子类还是一个抽象类。
作者: 坚强    时间: 2011-11-18 21:16
  这位同学,你能换过一个头像吗?你仔细看看
  
static和abstract不能同时存在,因为抽象的不可以被实例化,就不能随类加载

抽象类的特点:
1 抽象方法一定在抽象类中
2 抽象方法和抽象类都必须被abstract关键字修饰
3 抽象类不可以用new创建对象,因为调用抽象方法没有意义
4 抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法后,才能建立子类对象调用。
  如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。要复写所有父类中的方法。
  抽象类和一般类没有太大不同,该怎么描述还怎么描述,只是有些没有确定的东西在里面。
  抽象类比一般类多的是抽象函数,但是抽象类中可以不定义抽象函数。
  抽象类不可以实例化。
  抽象方法,没有方法主体,要加分号public abstract void work();


---------------------------------------------------------------



接口:初期理解,可以认为是一个特殊的抽象类
  当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示
  class用于定义类
  interface用于定义接口
  接口定义时格式特点:
1  接口中常见定义:常量 抽象方法
2  接口中的成员都有固定修饰符号   常量:public  static final
                                  方法:public  abstract

  记住:接口中的成员都是public的

  接口是不可以创建对象的,因为有抽象方法。需要被子类实现
子类对接口中的抽象方法全都覆盖后,子类才可以实例化,否则子类还是一个抽象类。

  接口中可以多实现,也就是多继承。
作者: 赵磊5    时间: 2011-11-20 16:13
抽象类是不能够实例化的类:
它的作用就是产生子类的同时给于子类一些特定的属性和方法.
来个简单的例子...
如果你的程序里面需要用到苹果和梨这2个类..那么你可以分别给出这2个类
但是你会发现这2个类里面有共同的属性和方法(属性: 都有核.. 方法: 都需要削皮吃...)那么你可以建立抽象类 "水果" 把这些共同的东西都定义在那里. 那么你的2个子类就只需要实其他必要的东东了(味道, 价格...)

优点: 当你需要对苹果和梨做新的,共同的修改或者添加的时候. 你现在就可以直接对他们的超类 水果 做就可以了.
作者: 程立彬    时间: 2011-11-22 23:26
通过继承它实现多态,后期绑定,可以为将来要实现的东西做好接口,实现重用性




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