对抽象类的解释说明

对抽象类的解释说明


抽象类


一、什么是抽象类

Java中的抽象类是一种不能直接被实例化的类,需要通过被继承之后才能被使用。抽象类通常被用来作为其他类的基类,以定义一组通用的属性和方法,并强制子类实现其中的一些方法。简单而言,如果一个类没有包含足够的信息来描绘一个具体的对象,那么这个类就是抽象类


二、抽象类的语法特点

1.代码示例

public abstract class Shape {
   private String color;

   public Shape(String color) {
      this.color = color;
   }

   // 抽象方法,必须由子类实现
   public abstract double getArea();

   // 非抽象方法,可以直接被继承和使用
   public String getColor() {
      return color;
   }

   public void setColor(String color) {
      this.color = color;
   }
}

这个抽象类定义了一个私有属性color和两个方法:一个抽象方法getArea()用于获取形状的面积,一个非抽象方法getColor()用于获取颜色

2.代码解析

1.抽象类通过在类名前添加abstract关键字来声明

public abstract class Shape {}

2.抽象类中被abstract修饰的方法称为抽象方法,抽象方法不用给出具体的实现体,抽象方法只有声明而没有实现,必须由子类实现才能被调用

// 抽象方法,必须由子类实现
   public abstract double getArea();

3.抽象类也是类,内部可以包含普通方法和属性,甚至构造方法,非抽象方法可以有具体的实现,并且可以被继承和使用

   private String color;

   public Shape(String color) {
      this.color = color;
   }
      // 非抽象方法,可以直接被继承和使用
   public String getColor() {
      return color;
   }

   public void setColor(String color) {
      this.color = color;
   }

三、抽象类的特性

1.抽象类不能直接实例化对象


Shape shape = new Shape();
//编译出错
//Shape是抽象的,无法被实例化

2.抽象方法不能是private

public abstract class Shape {
   abstract private double getArea();
}
//编译出错
//非法的修饰符组合abstract和private

当抽象方法没有加访问限定符时,默认是public

3. 抽象方法不能被final和static修饰,因为抽象方法要被子类重写

public abstract class Shape {
   abstract final double methodA();
   abstract public static double methodB();
}
//编译出错
//非法的修饰符组合abstract和final
//非法的修饰符组合abstract和static

4. 抽象类必须被继承,并且继承后子类要重写父类中的抽象方法,如果不重写,则子类也是抽象类,必须使用abstract来修饰

5. 抽象类中不一定包含抽象方法,但是有抽象方法的类一定是抽象类

6.抽象类中可以有构造方法,供子类创建对象时,初始化父类的成员变量


总结

使用抽象类的主要目的是为了将一些通用的行为和状态抽象出来,从而实现更好的代码重用和维护

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值