java抽象和接口

                                                                                                                                                             java抽象类

1.java抽象类的使用为了更好的扩展,将一类事物的共性抽象出来,变成抽象方法,而实现类必须实现抽象类的抽象方法,从而各有各的特点,形成百花齐放的效果。

2.抽象类中的方法不全是抽象方法,可以有方法体的,但是含有抽象方法的一定是抽象类。

抽象方法:强制要求子类做的事请

非抽象方法:提高代码的复用性,子类也可以使用父类的方法

3.抽象类是无法new一个对象出来,必须由实现类实现其所有的抽象方法再new一个对象,实现类必须实现抽象类的所有抽象方法,不然必须声明为抽象类,否则会编译报错的

4.抽象方法的定义,在方法的返回值前面加上abstract,无方法体直接分号结束。

5.抽象类中的成员变量:既可以是变量,也可以是常量,abstract不能修饰成员变量

6.抽象类可以有构造方法,用于子类访问父类数据的初始化

                                                                                                                                                         java接口

1.有些老师或许会说接口里的所有方法都是抽象方法,但是事实并不是这样,接口里可以有静态方法,具有方法体。

2.接口的默认方法对于以后接口的升级使用有很大的好处,接口的默认方法有方法体,不需要覆盖重写其方法,一旦覆盖重写之后,实现类调用的是本类的覆盖方法而不是接口的默认方法

3.实现类必须实现接口的所有抽象方法,接口中的抽象方法省略修饰符abstract

4.接口中的静态方法不能由实现类的对象名.方法名的方法调用,只能接口名.方法名的方式调用,静态方法与类名无关只与类有关,所有通过对象名调用静态方法都是错误的。

5.接口的变量都是常量,用public static final修饰的,常量在声明的声明的时候都必须赋值,类中的成员变量声明时不赋值,整型默认为是0,对象类型默认为空,字符类型默认为‘\u0000’,布尔类型默认为false,但是加上final修饰的一定要赋初值,否则就会报错。

6.接口是没有静态代码块或者构造函数的

7.一个类的直接父类是唯一的,但是一个类可以同时实现多个接口

8.如果实现类所实现的多个接口中,存在重复的抽象方法,那么只需覆盖重写一次即可

9.如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类就必须是一个抽象类

10.如果实现类实现的多个接口当中,存在重复的默认方法,那么实现类一定是要对冲突的默认方法进行覆盖重写,只要一次覆盖重写即可

11.一个类如果直接继承父类当中的方法,和接口当中默认方法产生了冲突,优先用父类当中的方法

12.类与类之间的接口是单继承的,直接父类只有一个

13.类与接口之间是多实现的,一个类可以实现多个接口

注意事项:

 1.多个父接口当中的抽象方法如果重复,没关系

2.多个父接口当中的默认方法如果重复,那么子接口必须进行默认方法的覆盖重写【而且带着default】

posted @ 2020-09-08 20:28  熬夜程序猿  阅读(157)  评论(0)    收藏  举报
Live2D