抽象类和接口

本文探讨了Java中的抽象类和接口。抽象类作为一组规范,提供了用户自定义插件时的约束,并通过继承来实现,但Java的单一继承限制了其在多规范场景的应用。接口则弥补了这一不足,定义了公共方法且可多实现,接口中的方法默认为public abstract,变量为public static final。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、抽象类

抽象类:一组规范。比如某个系统支持用户自定义插件,但用户也不能随便定义,这个时候,我们可以对用户提供一个抽象类,也就是规范,用户来实现这个抽象类就可以了。
抽象类和抽象方法定义

public abstract class Plugain {
    public abstract void method();
}

实现子类定义

public class MyPlugain extends Plugain {
    @Override
    public void method() {
    }
}

注意:
1、抽象类不能直接new,要使用规范的具体实现;
2、抽象类里面可以有普通方法,但抽象方法必须定义在抽象类;
3、抽象类也是有构造方法的
在这里插入图片描述4、抽象类是通过继承来完成具体规范的实现的,但Java只支持单一继承,那当包含多个规范需要是现实时,仅仅依靠抽象类就不能完成了,这时就需要接口,接口也是一种规范,但实现接口时,可以实现多个规范。

二、接口

接口定义
关键字:interface
接口中定义的方法都是public abstract,所有变量都是常量,public static final

public interface UserService {
    // 接口中定义的方法都是public abstract
    // 接口必须有实现类
    int add(Student student);
    void delete(long id);
    int update(Student student, long id);
    Student query(long id);
}

接口实现
关键字:implements
接口必须有实现类
命名以Impl结尾

public class UserServiceImpl implements UserService{
    @Override
    public int add(Student student) {
        return 0;
    }

    @Override
    public void delete(long id) {

    }

    @Override
    public int update(Student student, long id) {
        return 0;
    }

    @Override
    public Student query(long id) {
        return null;
    }
}

和extends不同,可以实现多个接口

public class UserServiceImpl implements UserService,UserServices2 {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值