当前位置:   article > 正文

Java的关键字-抽象(abstract)、接口(interface)_java abstract interface

java abstract interface

抽象类和接口都是为了解耦合的。

任何一个接口都有调用者和实现者。接口可以调用者实现者解耦合。

调用者面向接口调用实现者面向接口实现。

项目开发的时候,一般都是将项目分离成一个模块一个模块的,模块和模块之间采用接口衔接,降低耦合度。

一、抽象(abstract)

抽象类

正常类内有成员,成员属性和成员方法

抽象类的语法

父类特点:

  1. 抽象类还是类

  1. 抽象类具体是方法变抽象了,方法没有方法体

  1. 没有方法体要使用abstract修饰

  1. 抽象方法必须放在抽象类中

  1. 抽象类是使用abstract修饰的类

  1. 抽象类中可以有正常方法

  1. 属性不能抽象修饰,可以抽象类和方法

  1. 抽象类中可以有构造方法,但是不能创建对象

抽象类方法很抽象,只有方法签名(方法名)、没有方法体、没有方法执行。有构造方法但不能创对象。

主要用来当父类,被继承。

子类特点:

  1. 子类可以继承抽象类

  1. 继承后必须实现 ( implement ) 父类 全部 抽象方法 否则自己类也要定义成抽象类(抽象类被继承,抽象方法必须重写)

为什么设计成抽象

抽象类用来抽象差异性,具体共同点。也就是将差异性方法抽象化,提供给子类使用。共同的方法具体化,所有子类继承。

把子类不同的方法抽象成抽象方法,每个子类都重写

把子类都一样的方法取到父类,每个子类直接用不用重写。

二、接口 interface

接口不是类

接口的语法特点

接口可以继承接口,并且可以多继承。 类不可以多继承。

属性:

  1. 接口中属性是常量没有变量

  1. 默认被 public static final 修饰

方法:

  1. 接口中方法默认被 public abstract 修饰 ,即每个方法都是抽象方法

  1. 接口中不能有构造方法,不能创建对象

接口是用来被子类实现的

  1. 子类实现接口,要求重写全部抽象方法,否则要把子类定义为抽象类

  1. 可以实现多个接口 (implements xxx , yyy)

  1. 可以同时继承加实现,先继承再实现

  1. public class aaa extends bbb implements ccc, ddd{
  2. }

三、总结

接口的概念:是一种能力和约定

接口的定义:代表了某种能力

方法的定义:能力的具体要求

用的时候和多态场景一样,

1、将方法的参数列表定义成接口类型,调用方法时传入子实现类

2、定义接口类型数组,向数组存储接口的实现类对象

不同点

抽象类

接口

修饰符

abstract

interface

是不是类

接口

属性

正常属性

没有属性,全是常量,

默认被public static final修饰

方法

可以有正常方法,也可以有抽象方法

全是抽象方法,

默认被public abstract修饰

构造方法

可以有,但不能创建对象

不能有

子类

extends 抽象类,单继承

implements 接口,多实现

相同点

  1. 都可以当做数据类型来使用,用来接收子类类型

  1. 子类无论继承抽象类,还是实现接口都要强制重写父类的抽象方法

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/180533?site
推荐阅读
相关标签
  

闽ICP备14008679号