Java语言高编——面向对象-抽象类

来源:互联网 发布:openwrt防网络尖兵 编辑:程序博客网 时间:2024/06/12 15:35

抽象类和抽象方法

在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但并不是所有的类都是来描述对象的。如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样的类我们称它为抽象类。

比如new Animal(),我们都知道这是一个产生一个动物Aniaml对象,但是这个Animal具体长成什么样子我们并不知道,它没有一个具体动物的概念,所以他就是一个抽象类,需要一个具体的动物,如猫、狗来对它进行特定的描述,我们才知道它长成什么样。

在面向对象领域由于抽象的概念在问题领域没有对应的具体概念,所以用表征抽象概念的抽象类是不能实例化。

抽象类使用abstract关键字完成

public abstract class Animal{}

Java中的抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。

public abstract void eat();//抽象类中吃的方法

使用抽象类和抽象方法的注意事项

  • 抽象方法必须在抽象类中。
  • 抽象方法不能使用new关键字实例化对象。
  • 抽象方法必须在子类中进行重写。
  • 只要包含抽象方法的抽象类,该方法必须要定义成抽象类,不管是否还包含有其他的方法。
  • 抽象类中可以包含具体的方法,当然也可以不包含抽象方法。
  • 子类中的抽象方法不能与父类的抽象方法同名。
  • abstract不能与final并列修饰同一个类。
  • abstract不能与private、static、final或native并列修饰同一个方法。
原创粉丝点击