java基础知识-抽象类与接口

1、抽象类与接口的区别:

抽象类是抽象了类与类之间的共同特征:得到的抽象类,无法创建对象进行实例化,但是可以被继承。抽象类属于基本数据类型,因此可以作为一种数据类型,也就是是说被继承后,抽象类可以作为引用的数据类型,引入多态机制。

接口是一种抽象类:接口中得所有方法都没有方法体,接口是可实现的,也可以继承,关键字是implements和extends。

抽象类与接口的区别

2、抽象类的定义:


抽象类定义的方法

3、final与abstract绝对不能同时使用,因为abstract类如果被fianl意味着这个类不能被继承,不能继承,又不能创建新的对象,这时抽象类就没有了意义。

final和abstract关键字不能同时使用

4、抽象类的子类可以是抽象类,也就是说抽象类可以继承抽象类。

5、抽象类无法实例化,但是有构造方法,这个方法是供子类使用的,与接口不同,抽象类里的方法可以有方法体。子类调用父类构造方法的方法是super();方法

6、abstract修饰的方法:

        没有方法体,以;结尾,没有实现的方法例如public abstract void dosome();这种方法只是为了被重写而存在。

注意抽象类中不一定全都是抽象方法,但是抽象方法一定在方法体中。

7、普通子类继承抽象父类时必须重写或覆盖所有的抽象方法

       因为普通子类中的方法是必须有方法体的,所以如果继承了抽象父类,这些方法也成了子类的方法,如果不重写,那么必然会报错。

普通子类调用抽象父类必须重写或者覆盖所有的抽象方法

8、接口的定义

接口是一种基本数据类型,接口完全抽象,也就是说接口的所有的方法都是抽象的,接口的定义:

修饰符列表  interface 接口名

{


}

接口的特性和接口的定义

10、接口支持多继承,一个接口可以继承多个接口

    语法格式是:interface A  extends B,C

                         {

                          }

11、接口中的所有元素都是public修饰的,但是可以省略public,也即是说即使没有写public abstract,但是接口中的所有方法都是公开的抽象的方法。

12、接口中的常量:接口中public static final 修饰符也可以省略,因此接口中的所有变量都是常量

13、接口中的方法不能有方法体

14、非抽象类实现方法时,必须实现所有的方法。

15、接口的基础语法:

类与类叫继承,类与接口叫实现,接口与接口又叫继承,注意抽象类也可以继承接口,如果不是抽象类,那么必须重写所有的方法。一个类可以实现多个接口,这弥补了java类与类之间的单继承带来的缺陷。

一个类可以同时实现多个接口,则接口引用之间可以进行强转,向下转型时,可以使用instance of来判断是否是一个东西。

使用接口写代码时应该尽量用多态。


接口的特性内容总结

16、继承和实现同时出现时怎么办

继承和实现同时出现时要extends关键字在前,implements关键字在后。

class Cat extends Animal implements Flyable

{

}


继承和实现同时出现的情况

17、接口在开发中的作用:

实现面向抽象变成而不是面向具体编程,这样可以提高程序的可扩展力,并降低程序的耦合度。

接口离不开多态。借口可以解耦合,调用者和实现者的耦合。

接口在开发中的作用

18、类型与类型之间的关系

            1、is a关系:

                这种关系表示继承关系

                class cat extends Animal

                 {

                  }

            2、has a关系:

                这种关系表示关联关系,关联关系通常以属性的方式存在:

             3、like a关系:

                这种关系表示实现关系,实现关系通常是类实现接口

19、抽象类与接口的区别

         1、抽象类不是所有的函数都是抽象的,且有构造函数,但是接口没有构造函数;

          2、接口可以多继承,但是类与类只能单继承

          3、一个类能实现多个接口,但是只能继承一个类

          4、接口中只允许出现常量和抽象方法(public和 final和abstract 关键字可以省略),但是类             里可以出现变量和普通方法

抽象类与接口的区别


抽象类与接口的区别
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。