接口和抽象类

mac2022-06-30  26

抽象类

抽象类有静态代码块,构造方法,抽象方法,

四种修饰符修饰的:普通方法,静态方法,普通变量, 静态成员变量

抽象方法只有两种修饰符:public 和 protected

抽象类可以有抽象方法,也可以没有

抽象类可以继承接口

abstract class Hello { //成员变量 int a=10; public static String str="hello world !"; static int nums=30; private static int nu=30; //静态代码块 static{} //构造方法 public Hello(){} //普通方法 public void print(){} protected void print1(){} void print2(){} private void print3(){} //抽象方法 public abstract void print4(); protected abstract void print5(); //private abstract void print6();//报错,抽象方法只能设置public或者protected //可以有四种修饰符的静态方法 public static void print7(){} }

接口

接口可以extends接口

定义常量和抽象方法

接口可以定义默认方法时,需要其实现类调用。

两个接口有同名的默认方法时,一个类同时实现两个接口时会报错,后代分别实现也不行,只要实现的接口有同名默认方法就会报错,建议重写。但是两个同名的static方法就不会报错

接口调用静态方法,直接用接口名称调用。

interface jie { public default void speak() { System.out.println("jie"); } public static void num() { System.out.println(""); } int a=10; public static final int b=20; } interface kou //extends jie 接口可以继承接口 { public default void speak() { System.out.println("kou"); } } //报错 class A implements jie //父类实现了jie { } class B extends A implements kou //子类实现了kou { } //虽然父类A和子类B分别实现的接口jie和接口B,但是有同名的默认方法,报错 //类C同时实现两个有相同默认方法的报错 class C implements jie,kou //报错 { } //但是当接口kou实现接口jie,然后其他类实现时就不会出现问题,类似于子类覆盖
最新回复(0)