一起来搞明白JAVA抽象类和接口

和老师聊了几个小时后,明白自己最近学习方面的广度是够了,但深度确还差着很大的火候。所以开始着手一些身边的基础问题。今天我来说说自己关于JAVA抽象类和接口。

抽象类:

定义:有abstract修饰的类,我们称之为抽象类 如: abstract class Test{}; 。

 方法:抽象类可以有具体方法和抽象方法 。 抽象方法如: abstract void play();  。

变量:和普通类一样。

抽象方法和抽象类的联系:有抽象方法的类一定为抽象类,抽象类不一定有抽象方法。

和普通类的区别:

                1.不能创建对象。

                2.一般类继承了抽象类必须实现抽象方法。

3.抽象方法修饰词 必须为  public 或者 protected。

接口:

定义:非常抽象的类型,类型为Interface 修饰。如: public Interface Test(){};

方法:必须为抽象方法。修饰词必须为 public abstract。

变量:修饰词必须为  public static final 。


抽象类和借接口的区别(语法层面):

1. 接口的方法 只能为 public abstract 的抽象方法,而抽象类 既可以有抽象方法 也可以有一般方法。

2.接口的成员变量只能为只能为public final static 修饰,而抽象类则没有限制,可以有一般的变量。

3.JAVA8 以前 接口中不能有静态代码块和静态方法 ,而抽象类可以有静态代码块和方法。 注意:JAVA8 中的接口中可以有静态方法,但是必须有body。

4.普通类只能继承一个抽象类,但可以实现多个接口。

抽象类和借接口的区别(设计层面):

1.抽象类是对事物的抽象 ,接口是对行为的抽象。

如网上所说,抽象类是用来判断一个对象是不是属于某个类,而接口是用来分析一个对象是否具有某项技能或功能。列子:

我们程序员继承了人这个抽象类,然后实现了技能接口中编程的方法。

2.抽象类是一种模板设计,而接口是一种行为规范,是一种辐射式设计。

对于一个模板式设计的抽象类中的方法而言,我们只需要修改模板中的方法,那么所有子类的方法就能更新。而对于辐射式设计的接口中的方法,需要在所有实现类中修改,才能得到更新,互不相干。


这是我目前的见解,如有不正确的地方,请各位指正。



       


               

       


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值