温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

抽象类可以包含普通方法吗

发布时间:2026-08-30 21:03:06 来源:亿速云 阅读:90 作者:小樊 栏目:编程语言

可以。

Java 中,抽象类是可以包含普通方法(具体方法)的,这是它与**接口(Java 8 之前)**的一个重要区别。


抽象类中的方法类型

抽象类中可以包含:

  1. 抽象方法

    • 没有方法体
    • abstract 修饰
    • 子类必须实现(除非子类也是抽象类)
  2. 普通方法(具体方法)

    • 有方法体
    • 子类可以直接继承使用,也可以选择重写

示例代码

abstract class Animal {
    // 抽象方法
    public abstract void sound();

    // 普通方法
    public void sleep() {
        System.out.println("动物在睡觉");
    }
}

class Dog extends Animal {
    @Override
    public void sound() {
        System.out.println("狗在叫");
    }
}

public class Test {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.sound(); // 狗在叫
        dog.sleep(); // 动物在睡觉
    }
}

为什么抽象类允许普通方法?

  • 提高代码复用性
  • 提供一些通用实现,避免子类重复写相同代码
  • 抽象类既可以“定义规范”,也可以“提供默认行为”

对比:抽象类 vs 接口(常见误区)

特性 抽象类 接口(Java 8+)
抽象方法
普通方法 ✅(default 方法)
成员变量 只能是常量
构造方法

总结一句话

抽象类可以包含普通方法,而且这是它非常重要的用途之一。

如果你愿意,我也可以结合 接口中的 default 方法抽象类设计场景 再深入讲讲。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI