JAVA复习笔记--------类(四)接口和抽象类



    接下来是来复习和继承相关的抽象类和接口。继承这部分内容是java的精华。虽然后面涉及的文件,集合,网络等看起来很复杂,但是她们只是把java的方法封装起来,实现一定的功能。

抽象就是从多个事物中将共性的,本质的内容抽取出来。Java中可以定义没有方法体的方法,该方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就是抽象类(也可以有非抽象的方法)。抽象方法的由来多个对象都具备相同的功能,但是功能具体内容有所不同,那么在
抽取过程中,只抽取了功能定义,并未抽取功能主体,那么只有功
能声明,没有功能主体的方法称为抽象方法。当我们在抽象一个类的时候:必须用abstract关键字来修饰。抽象方法只有方法声明,没有方法体,定义在抽象类中。格式:修饰符 abstract 返回值类型函数名 ( 参数列表 );

抽象类不可以被实例化,也就是不可以用new 创建对象。原因:抽象类是具体事物抽取出来的,本身是不具体的,没有对应的实
例。而且抽象类即使创建了对象,调用抽象方法也没有意义。抽象类通过其子类实例化,而子类需要覆盖掉抽象类中所有的抽象方法后才可以创建对象,否则该子类也是抽象类。

另外,关于抽象类我们应该注意的是:抽象类中可以没有抽象方法,但是这样做的目的仅仅是不让该类建立对象。Abstract关键字和一些关键字不能共存:final关键字,被final修饰的类不能有子类。而被abstract修饰的类一定是一个父类;Private关键字,抽象类中的私有的抽象方法,不被子类所知,就无法被复写,而抽象方法出现的就是需要被复写;static关键字,如果static可以修饰抽象方法,那么连对象都省了,直接类名调用就可以了,可是抽象方法运行没意义。抽象类也有构造方法,因为抽象类是一个父类,要给子类提供实例的初始化。

接口和抽象类非常相像,当抽象类中的额方法都是抽象的,那么可以通过接口的形式来表示。与类的定义关键字class不同,接口的格式是:interface {}
接口中的成员修饰符是固定的。对于成员常量:public static final,对于成员函数:public abstract。由此可以接口的成员的访问修饰符都是public。接口是是不可以创建对象的,因为有抽象方法。需要被子类实现,子类对接口中的抽象方法全都覆盖后,子类才可以实例化。否则子类是相当于一个抽象类。接口的出现将“ 多继承” 通过另一种形式体现出来,即“多实现”,总结接口的特点就是:接口是对外暴露的规则接口是程序的功能扩展接口可以用来多实现类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口接口与接口之间可以有继承关系。
    对于抽象类和接口,我们最常见的典型的事例就是适配器模式,相当于一个模板。在定义功能时,功能的一部分是确定的,但是有一部分是不确定,而确定的部分在使用不确定的部分,那么这时就将不确定的部分暴露出去。由该类的子类去完成。这样把公共的部分封装起来,把不确定的部分对外提供接口或者提供抽象方法。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值