---java 抽象类 和 接口---

抽象类

再面向对对象的语言中,所以的对象都是通过类来描述的,但如果这个类无法准确的描述对象的

话,那么就可以把这个类设置为抽象类。

实例

这里用到abstract修饰,表示这个类或方法是抽象方法

因为会重写motifs里的show方法,所以无论里面写什么都不会被执行,那么就把他写成抽象方法

然后再子类中重写她,可以说抽象类就是用来被继承的,而抽线方法就是用来被重写的

要注意的是,抽象类中可以有普通方法和成员变量,甚至类里面都可以没有抽象方法

但是如果里面有一个抽象方法,那么就必须要把这个类用abstra修饰

当之类继承了抽线父类之后,子类还必须要重写父类的抽象方法,若不想重写抽象方法,那么这个子类也是抽象类

但如果你不想要在这个类中重写这个方法,那可以也把这个类也设置成抽象类,只不过当别人要继承这个类,需要重写这个类和这个类的父类的所有抽象方法

抽象方法是用来被重写的,所以不能有final static  private修饰

且抽象类不能被实例化

要是用的话必须要实例化子类,然后通过向上转型来使用

抽象类作用

抽象了本身不能被实例化,只能通过实例化子类,然后向上转型重写父类的抽象方法才能使用

这样就多了一层编译器的校验,因为你不有些工作是不该父类去完成的,那么你把它写成抽象方法,这样就确保这是子类去完成的任务

接口

生活中常见的usb接口,当我们要传输数据时,可以使用usb插头插入usb接口中然后进行各种操作,而这个usb接口就相当于是一个规范,你要通过usb接口进行数据的传输,就必须要有usb接口,而如果你设备有usb插头,不管是什么设备,相机,电视,电脑还是什么的,都能插入usb插头进行操作,而java中的接口也是这样,接口是公共行为的规范,再大家实现是你只需要符合规范

(有usb插头)那么你就可以使用这个接口(usb接口)

语法

接口的创建

和类的写法一样,只不过类使用class去修饰,而接口用interface去修饰

接口中的成员的权限都是public,且成员变量默认是由public final修饰

成员方法默认是由public abstract修饰

若要再接口中存在由方法体的成员方法,那么就要用static 或者 final修饰

接口的使用

需要用类去实现该接口,因为接口中有抽象成员

two这个类必须重写所有接口都有的抽象类(这里我把其他的抽象类都注释了)

调用

对于接口中存在的有方法体的方法的使用,只有用default修饰的能直接调用,而static的就需要用default去间接调用

没有static修饰的Show_5方法的存在

接口可以理解为更加抽象的抽象类,抽象类中可以允许构造方法,和非抽象成员方法的存在

而接口中只能是抽象方法,且成员都有固定的修饰(成员变量为 public final

成员方法为 public abstract)相比于抽象类,接口的好处是一个类可以使用多个接口, 

这样再实际使用时灵活性就更高了,而这样设计程序有个好处就是再具体使用时看以忘记对类型,

只需要关注对象是否具有某个功能(也就是使用了这个功能对应的接口)

接口件也能继承,用extends关键字,之后再使用接口是需要把继承的接口的抽象类也要重写

下篇介绍几个实际接口

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值