抽象类和接口的区别

abstract

当子类中有一些共有的但是细节不同的行为的时候,可以对这些行为进行抽取,将这些行为抽取到父类中以抽象方法的形式展现。---抽象方法所在的类一定是抽象类

抽象类不能实例化(创建对象),但是有构造方法

抽象类中可以有抽象方法也可以没有抽象方法

抽象方法可以重载

抽象方法不可以用static/final修饰

抽象方法不可以用private修饰

抽象方法可以用默认权限修饰吗?---可以---父子类必须同包

当子类继承了抽象类之后要求必须实现对应的抽象方法
接口

用interface定义接口,用implements关键字让类和接口之间产生联系,这种联系称之为实现。

接口不能用于实例化,也没有构造函数---接口不是类

单继承,多实现---一个类只能有一个父类,但是可以实现多个接口---多实现必不可免的会导致方法的混乱

interface A{

void m();

}

public class B implements A{

void m(){ // 接口中的方法默认是public修饰---重写 一大 原则

System.out.println(“B m()”);

}

}

接口中的方法默认是抽象方法,默认用public(只能用)修饰,接口中的数据默认是静态常量---默认用public static final修饰

接口可以继承接口---接口之间是多继承

抽象类在实现接口之后一定要实现这个接口中的所有的抽象方法吗?---不一定

接口可以在一定程度上统一结构实现方法的统一调用,但是可能会导致代码的冗余

接口中不能定义构造函数,虽然接口编译完成后也会产生一个class文件,但接口本质上不是类
---------------------
作者:下课铃声
来源:CSDN
原文:https://blog.csdn.net/weixin_42129856/article/details/81100548
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值