抽象类与接口

抽象类

何为抽象类?

抽象类就是包含了抽象方法的类,而抽象方法就是指用abstract修饰的空方法(未实际实现的方法)

image

只要有一个抽象方法,那么这个类就是一个抽象类,这个类前面必须加上abstract进行修饰

但是抽象类就只要这些吗? 不不不,它还有很多特点哦~

抽象类的特点:

1.不可以被new(实例化),但是不代表不可以有构造方法哦!(构造方法和能不能new不影响的)

2.一定包含抽象方法

3.可以有普通方法,静态方法,普通成员变量,静态成员变量

4.如果一个类继承了这个抽象类,那么这个类就必须实现抽象类当中所有的抽象方法(特殊:如果一个抽象类A被一个抽象类B继承了,那么这个抽象类B可以不实现A中的抽象方法,但是如果一个普通类C继承了B类,那么C需要实现A,B两个类的所有抽象方法)

5.final(静态,无法被修改)和static(不满足覆写条件) 这个两个关键字不能与abstract共用

代码演示:

image

结构:

image

image

image

接口

何为接口?

如果说抽象类是一个空模板,那么接口就是一个抽离出来的特殊的特性,是抽象类的抽象

image

使用interface取代class,并且里面的成员变量默认为public static final,方法也默认为public abstract,其余方法也默认为public的.上图中的蓝色框框内,紫色框框内的效果是等效的.

那么接口既然没有class修饰了,那么它就没有类的特点了,而有了它自己的特点

接口的特点:

1.使用interface来修饰

2.普通方法都不能有具体实现方式(默认public abstract修饰),如果非要用,就使用default修饰(使用方法依旧是"对象.方法名")

3.接口中可以有static方法

4.接口中所有的方法都是public默认修饰的

5.接口中的变量也都是默认public static final的

6.接口不能实例化(new)

7.接口不是类,所以没有构造方法,甚至各种代码块(实例代码块,静态代码块)

8.一个类implement(导入)接口,就需要重写所有的抽象方法,且重写后的访问权限必须是public(重写条件:重写的方法的访问权限必须大于等于父类的)

9.接口与接口可以使用extends(拓展)来拓展接口的功能,但是一个类继承了这个拓展了的接口则需要实现两个接口中的所有抽象方法

10.一个类只能继承一个类(无论抽象),但是一个类可以导入多个接口

代码演示:

image

image

posted on 2023-03-25 17:16  沐阳Yo  阅读(43)  评论(0)    收藏  举报