java中抽象类和接口

 

抽象类:

首先Java中抽象方法是一种特殊的方法:它只有申明,没有具体的实现(也就是没有方法体)。

抽象类用来作为继承子类的模板的,是对具体事物的抽象。从语法看就是用abstract关键字修饰的类,含有抽象方法。如果一个类含有抽象方法,那么这个类就一定是抽象类。但是抽象类可以不含抽象方法。抽象类存在的意义就是被继承。

抽象类和一般类的区别:

1:抽象类和抽象方法必须权限修饰符必须为:public或者protect(因为需要被继承,所以不能是private),而一般类可以是private

2:抽象类不能用来创建实例,不能实例化。

3:一个类继承抽象类,则子类必须实现父类的抽象方法。否则,子类也必须为抽象类。

接口:

接口是抽象方法的集合。是对行为的抽象。接口中的方法全部必须为抽象方法。使用interface关键字修饰。接口中的任何字段都自动是static和final的,权限修饰为必须为public。

接口与抽象类的区别:

1:抽象类中可以有非抽象方法(也就是可以有成员方法的具体实现),而接口中只能有publIc abstract方法。

2:抽象类中成员变量可以是各种类型的,而接口中只能是public static final的。

3:接口中不能含有静态代码快以及静态方法,而抽象类中可以含有。

4:一个类能实现(implements)多个接口,但是只能继承(extends)一个抽象类(其他类也是一样,只能继承一个类)。

5:抽象类如果增添了新的方法,,继承其的子类可以不变。而接口中如果增加了新的方法,实现该接口的类必须相应改变。

使用抽象类和接口的场景:

1:如果想要多重继承,那么必须使用接口,java中类不能多重继承,接口可以多重实现。

2:如果基本功能在不断改变,那么使用抽象类,因为使用接口的话,改变接口内容,需要改变实现该接口的所有类。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值