Java 抽象类和接口

抽象类和接口以及抽象类和接口的区别。

抽象类
  第一:抽象类怎么定义?在class前添加abstract关键字就行了。
  第二:抽象类是无法实例化的,无法创建对象的,所以抽象类是用来被子类继承的。
  第三:final和abstract不能联合使用,这两个关键字是对立的。
  第四:抽象类的子类可以是抽象类。也可以是非抽象类。
  第五:抽象类虽然无法实例化,但是抽象类有构造方法,这个构造方法是供子类使用的。
  第六:抽象类中不一定有抽象方法,抽象方法必须出现在抽象类中。
  第七:抽象方法怎么定义?
    public abstract void doSome();
  第八(*****五颗星):一个非抽象的类,继承抽象类,必须将抽象类中的抽象方法进行覆盖/重写/实现。

 

  面试题(判断题):java语言中凡是没有方法体的方法都是抽象方法。
    不对,错误的。
    Object类中就有很多方法都没有方法体,都是以“;”结尾的,但他们都不是抽象方法,例如:
    public native int hashCode();
    这个方法底层调用了C++写的动态链接库程序。
    前面修饰符列表中没有:abstract。有一个native。表示调用JVM本地程序。

2.2、接口的基础语法。
  1、接口是一种“引用数据类型”。编译生成也是一个class 文件
  2、接口是完全抽象的。
  3、接口怎么定义:[修饰符列表] interface 接口名{}
  4、接口支持多继承。
  5、接口中只有常量+抽象方法。
  6、接口中所有的元素都是public修饰的
  7、接口中抽象方法的public abstract可以省略。
  8、接口中常量的public static final可以省略。
  9、接口中方法不能有方法体。

2.3 接口的作用

面向接口编程,可以降低程序的耦合度,提高程序的扩展力。符合OCP开发原则。

接口的使用离不开多态机制。(接口+多态才可以达到降低耦合度。)

接口可以解耦合,解开的是谁和谁的耦合!!!

任何一个接口都有调用者和实现者。

接口可以将调用者和实现者解耦合。

调用者面向接口调用。

实现者面向接口编写实现。

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

 

2.4  抽象类和接口有什么区别?

  在这里我们只说一下抽象类和接口在语法上的区别。

  抽象类是半抽象的。
  接口是完全抽象的。

  抽象类中有构造方法。
  接口中没有构造方法。

  接口和接口之间支持多继承。
  类和类之间只能单继承。

  一个类可以同时实现多个接口。
  一个抽象类只能继承一个类(单继承)。

  接口中只允许出现常量和抽象方法。

    以后接口使用的比抽象类多。一般抽象类使用的还是少。
    接口一般都是对“行为”的抽象。

posted @ 2020-09-03 00:25  一叶扁舟,乘风破浪  阅读(133)  评论(0编辑  收藏  举报