接口和抽象

接口和抽象

一、抽象类和抽象方法

抽象类:

1、使用abstract修饰

2、抽象类不能被直接实例化,需要使用向上转型的方式,(多态),父类(抽象类)引用指向子类对象A  a=new B();

3、抽象类中可以有常量、变量、属性、成员方法还有构造方法和静态方法以及抽象方法。(但是抽象方法只能存在抽象类中)

4、抽象类中的抽象方法要在其子类中被实现

5、抽象类是一个服务类,其成员变量以及成员方法都是为了给子类继承服务的,构造方法初始化这些成员变量也是为了继承给子类准备的。

6、抽象类存在的意义就是成为子类的父类,被子类所继承,不然会编译报错

抽象方法:

1、       使用abstract修饰(在java8以前版本中接口的方法全都默认为抽象方法所以abstract可以省略)

2、       抽象方法没有方法体,在抽象类中的抽象方法要被继承的子类实现(如果子类也是抽象类,则可以不实现所继承的抽象类父类中抽象方法)

3、       构造、静态、私有、final修饰的,这些方法不能做为抽象类,不能用abstract声明为抽象类

 

接口:

1、       使用interface来修饰

2、       接口也是抽象类,是特殊的抽象类(java8以前接口里的方法全部都是抽象方法,成员变量都是常量),它比抽象类还有更抽象

3、       接口是一种规范,一种标准(接口的实现类都必须遵守这种规范)(在开发中,服务器端人员只需提供接口参数规范,开发人员按照这种接口的规范去开发,当服务器端开发好了,接口也开发好了,然后对接(整合),严格遵守接口规范有利于对接)

4、       接口不能被直接实例化,需要使用向上转型的方式,(多态),父类(接口)引用指向子类对象 A  a=new B();

5、       接口的子类叫做实现类,不使用extend 而是implement。

(一个接口可以有多个实现类,一个类可以实现多个接口)

6、       接口与接口之间是多继承,不可实现。(接口可以多继承接口)

接口与实现类之间是单继承,多实现。(一个实现类可以实现多个接口)

类和类遵守java的单继承,不可实现

7、       接口不仅是一个规范,它还利用解耦合,扩展性好,所以现在都是面向接口编程。

8、       如果子类不想实现接口,可以被重新定义成接口(接口与接口之间是多继承,不可实现的)

9、从java8开始接口中可以存在静态方法以及dafult(默认不写)方法了

 

作为新手小菜鸟的我,只想记录,便于温故知新,如有错误或疏忽,请留言,审查后改正,谢谢各位大佬
原文地址:https://www.cnblogs.com/zhangsonglin/p/10506511.html