java抽象类、抽象方法介绍和相关实现实例。

偏执的太偏执、 2021-07-25 02:11 328阅读 0赞

抽象类和抽象方法方法

简介

抽象方法是java类中的一个特殊类,为什么要把它称为抽象类?因为抽象类中有抽象方法,但是抽象类中也可以有普通方法
1.用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract修饰一个方法时,这个方法叫做抽象方法。
2.有抽象方法的类必须声明为抽象类,抽象类必须被继承,抽象方法必须被重写。
3.抽象方法秩序声明,不用也不能在抽象方法中实现。
4.抽象类不能被实例化,只能被继承,然后子类实例化。

抽象方法解决的问题

多个有关系的类的共同行为在抽象方法中给出了抽象方法(并非具体的方法)如图形类为抽象类,在图形类中定义了求周长的方法,对于三角形,圆形,矩形他们的求周长的方法不一样,但是他们之间是有联系的,他么都属于图形类。

下面我们来写一个抽象类的实例来实现抽象类的功能:
动物有猫和狗两种,它们都属于动物,猫的种类中有一种蓝猫。动物都有喜欢的做的行为这个共同行为。

我们先写动物的抽象类(Animal类

  1. package summary;
  2. public abstract class Animal {
  3. public String name;
  4. public Animal(String name) {
  5. this.name = name;
  6. }
  7. public abstract void enjoy();
  8. }

Animal这个抽象类定义了一个抽象的方法:动物都喜欢做的事。
我们现在写猫和狗的类(Dog类和Cat类
因为Cat下面还有一个blueCat类所以我们将Cat类也定义为抽象类
子类继承父类时,如果这个父类中的所有的抽象方法,子类都能全部重写进行实现的话,那么这个子类就去重写并实现这些抽象方法,如果有子类不能实现的抽象方法,那么将这个子类也声明为抽象类。

  1. package summary;
  2. abstract class Cat extends Animal {
  3. public String eyesColor;
  4. public Cat(String n,String e) {
  5. super(n);
  6. this.eyesColor= e;
  7. // TODO 自动生成的构造函数存根
  8. }
  9. @Override
  10. public void enjoy() {
  11. // TODO 自动生成的方法存根
  12. System.out.println("猫喜欢叫喵喵喵");
  13. }
  14. }
  15. package summary;
  16. public class Dog extends Animal {
  17. public String furColor;
  18. public Dog(String n,String f) {
  19. super(n);
  20. this.furColor =f;
  21. // TODO 自动生成的构造函数存根
  22. }
  23. @Override
  24. public void enjoy() {
  25. // TODO 自动生成的方法存根
  26. System.out.println("狗喜欢叫汪汪汪");
  27. }
  28. }

下面创建测试类来测试我们写的抽象类的功能

  1. public class Test {
  2. public static void main(String[] args) {
  3. // TODO 自动生成的方法存根
  4. Animal d1 = new Dog("狗蛋", "红色");
  5. Animal bluecat =new blueCat("蓝猫","蓝色的眼睛");
  6. d1.enjoy();
  7. bluecat.enjoy();
  8. }
  9. }

输出结果
抽象类输出结果

发表评论

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

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

相关阅读

    相关 抽象方法抽象

    **抽象方法**       **使用abstract修饰的方法,没有方法体,只有声明。定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现。** *...

    相关 抽象抽象方法

    抽象类和抽象方法的修饰符abstract 一、含有抽象方法的类必须声明为抽象类         换句话说就是抽象方法只能存在于抽象类中 二、抽象类必须被继承,抽象类中的方

    相关 抽象抽象方法

    抽象类: 1、抽象类的定义? 当多个类中出现相同功能,但是功能主体不同,这时可以进行向上抽取。只抽取功能定义,而不抽取功能主体。 如果在本类有无法实现的