抽象类和接口的区别

抽象类:(Abstract)

1,概念:如果一个类定义了方法,但没有具体执行代码,那么这个方法叫抽象方法,抽象方法用abstract来修饰,由于无法执行抽象方法,则这个类也被叫做抽象类。用abstract修饰的类就是抽象类。

eg1:

// 抽象类
abstract class Person {
    // 抽象方法
    public abstract void say();
}

特点:1.抽象类不会被实例化

eg2:Person p = new Person(); // 编译错误

2.抽象方法无方法体

eg3:public abstract void run();

接口

1,概念:接口是对行为的抽象,它是抽象方法的集合,利用接口可以达到行为定义和业务实现分离的架构设计目的,并且接口的多重实现以及多重继承等特性,在架构设计上更灵活,易扩展。接口是比抽象类更加抽象的一种纯抽象的代码结构,不能包含成员变量,只包含常量,抽象方法,默认方法等。

区别:

1.在接口中定义抽象方法可以不加abstract关键字,而抽象方法必须加。

2.在接口中不存在普通方法,不允许构造方法,声明的常量不允许被修改,而抽象类可以存在普通方法,允许构造方法,可以定义成员变量。

3.在接口中可以多重继承,使用implements多个接口,而抽象类只能继承一个类。

4.在接口中只能使用public访问修饰符,而抽象类可以使用任意访问修饰符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值