JAVA抽象类和抽象方法(abstract)

忘是亡心i 2021-12-23 13:23 588阅读 0赞

一、抽象(abstract)的使用

  当父类的某些方法不确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]。

  我们都知道,父类是将子类所共同拥有的属性和方法进行抽取,这些属性和方法中,有的是已经明确实现了的,有的还无法确定,那么我们就可以将其定义成抽象,在后日子类进行重用,进行具体化。这样,抽象类也就诞生了。

  例如,定义了“动物”父类,其中“动物名称”和“动物年龄”属性已经明确了,但是“动物叫”的方法没有明确,此时就可以将“动物叫”定义为抽象方法。

  所以,抽象类是为了把相同的但不确定的东西的提取出来,为了以后的重用。定义成抽象类的目的,就是为了在子类中实现抽象类。

复制代码

  1. package javastudy;
  2. public class AbstractDemo1 {
  3. public static void main(String[] args) {
  4. // TODO Auto-generated method stub
  5. }
  6. }
  7. // 这就是一个抽象类
  8. abstract class Animal {
  9. String name;
  10. int age;
  11. // 动物会叫
  12. public abstract void cry(); // 不确定动物怎么叫的。定义成抽象方法,来解决父类方法的不确定性。抽象方法在父类中不能实现,所以没有函数体。但在后续在继承时,要具体实现此方法。
  13. }
  14. // 抽象类可以被继承
  15. // 当继承的父类是抽象类时,需要将抽象类中的所有抽象方法全部实现。
  16. class cat extends Animal {
  17. // 实现父类的cry抽象方法
  18. public void cry() {
  19. System.out.println("猫叫:");
  20. }
  21. }

复制代码

二、用abstract修饰的类,即抽象类;用abstract修饰的方法,即抽象方法。

三、抽象方法不能有方法主体。格式如下:

  1. abstract void xxx();

四、抽象类不能被实例化。因为抽象类中方法未具体化,这是一种不完整的类,所以直接实例化也就没有意义了。

五、抽象类中不一定要包含abstrace方法。也就是了,抽象中可以没有abstract方法。

六、一旦类中包含了abstract方法,那类该类必须声明为abstract类。

发表评论

表情:
评论列表 (有 0 条评论,588人围观)

还没有评论,来说两句吧...

相关阅读

    相关 抽象abstract

    我们先来看一下Person类和子类的继承图,我们可以声明一个Person的父类,然后让它的子类派生,因为它的子类各有不同的属性和参数,所以为Person类实例方法显得有些浪费内

    相关 Java抽象abstract

    如果一个类只定义了一个为所有子类共享的一般形式,至于细节则交给每一个子类去实现,这种类没有任何具体的实例,只具有一些抽象的概念,那么这样的类称为抽象类。 在面向对象领

    相关 抽象Abstract

    学完java之后,发现很多基础东西都遗忘却。。。所以特地重新刷课,总结基础。。。温故而知新,增加记忆吧 抽象(关键字:Abstract) 多个类中出现相同的方法,但是方法实