12/14博客打卡

以下是我对Java抽象类的总结

Java中的抽象类是一种重要的面向对象编程概念,它提供了一种在类的层次结构中实现抽象性的方式。以下是关于Java抽象类的总结:

1. 抽象类的定义

在Java中,使用abstract关键字定义抽象类。抽象类不能被实例化,它通常用作其他类的基类,提供一个通用的抽象结构,由子类实现具体的功能。

 

abstract class AbstractPlayer {
    abstract void makeSound();
}

如图,实例化就报错

上述例子中,AbstractPlayer是一个抽象类,其中包含了一个抽象方法makeSound,该方法没有具体的实现。

2. 抽象方法

抽象类可以包含抽象方法,这些方法没有具体的实现,而是由其子类提供具体的实现。子类必须实现所有在父类中声明的抽象方法,否则子类也必须声明为抽象类。

 

abstract class Shape {
    abstract double calculateArea();
}

class Circle extends Shape {
    double radius;

    @Override
    double calculateArea() {
        return Math.PI * radius * radius;
    }
}
 

在上述例子中,Shape是一个抽象类,包含了抽象方法calculateAreaCircleShape的子类,提供了对calculateArea方法的具体实现。

如图,子类没有实现所有在父类中声明的抽象方法,则报错

3. 抽象类与接口的区别

  • 抽象类可以包含具体方法的实现,而接口只能包含抽象方法。
  • 一个类只能继承一个抽象类,但可以实现多个接口。
  • 抽象类的字段可以有访问修饰符,而接口的字段默认为public static final
  • 抽象类的构造方法可以有参数,而接口不能有构造方法。

4. 抽象类的作用

  • 提供一个通用的基类,约定了一组要在子类中实现的方法,确保子类具有一致的结构。
  • 充当模板,定义了一些方法的骨架,由子类提供具体的实现。
  • 防止直接实例化,强制子类提供具体实现。

5. 注意事项

  • 抽象类可以有构造方法,但它不能被直接实例化。
  • 抽象类的抽象方法必须在子类中实现,否则子类也必须声明为抽象类。
  • 抽象类可以包含具体的方法和字段,不限于抽象方法。

总的来说,抽象类是Java中实现抽象性的一种机制,通过它可以构建更具层次结构和模块化的代码,同时提供了一定程度上的灵活性和可扩展性。在设计中,合理使用抽象类可以帮助更好地组织代码结构,使代码更易于维护和扩展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值