抽象与接口

抽象

***********************************************************************************************************

主要分2个部分:

1.抽象类                                               2.接口

***********************************************************************************************************

抽象方法:

当一个方法,我们只能确定他的声明,无法确定他的实现,那么该方法就设为抽象

方法。

语法: 在方法的声明部分加上一个可选修饰符abstract。然后该方法不能有实现部分,也就

是不能有方法块部分。用分号直接结束。

***********************************************************************************************************

1.抽象类

有抽象方法的类一定是抽象类。(在类的声明部分加上abstract)

特点: 

1.不能产生对象。(原因:对象是个具体的,实际存在的,不应该有不确定的。)

2.抽象类存在的意义在于产生子类。

3.抽象类里面也有属性方法等等一个类该有的都有。

4.语法上:抽象类可以没有抽象方法,但是这样就失去设计的意义。

注意: 子类继承抽象类,必须实现抽象类中的所有抽象方法,除非这个类也是抽象类。

abstract只针对类和方法。

用法:一般用在父类中,所有子类共有的,都要重写的,就一般写为抽象方法,自然父

    类就是抽象类了。

   在代码中:  @override 可以进行标注提醒。

***********************************************************************************************************

2.接口

    特点:1.是一种独立的数据类型。

    2.接口关注的是行为的共享(接口不能产生对象)

1> 定义

1.关键字:interface

2.接口在语法上访问修饰符只有public和default(默认)

属性:只能是公共,静态,常量属性(三个都得满足)

    就算不写public statc final,默认也算常量。

构造:接口无构造方法。

方法:接口里面定义的方法只能是公共的,抽象的方法。

    public abstract 可以省略不写。

没有实例初始化块,也没有静态初始化块。

公共借口的名字必须和他所在的java文件名保持一致。

注意:在jdk1.8中,接口有了新的功能,也就是能写方法实现部分。用default修饰。

       eg:  public default void methodA(){

xxxxxxxxxxxxxxxxxxxxx

}

2>实现

1.让类实现接口。

用关键字implements +接口名字

特点:1.实现接口的类必须实现接口的所有方法,除非这个类是抽象类。

    2.一个类可以实现多个接口,在implements后面写多个接口的名字,用

逗号隔开。

    3.类在实现接口的同时,可以做继承。

3>接口与接口的继承

1.接口的继承依然使用extends 关键字。

子接口自动继承父接口的抽象方法。

2.接口的继承是可以多继承的。

extends 后面书写需要继承的接口名字,用逗号隔开。

3. 接口的引用可以指向实现类的对象。

***********************************************************************************************************

行为的分类原则(指行为应该写到父类中,还是接口中):

1、对象与生俱来的行为写到抽象类中。

2、附加的行为写到接口中。

接口设计的原则是:

最小接口原则。

尽量小接口, 这样可以自由组合,防止接口污染。





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值