抽象类有静态代码块,构造方法,抽象方法,
四种修饰符修饰的:普通方法,静态方法,普通变量, 静态成员变量
抽象方法只有两种修饰符: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,然后其他类实现时就不会出现问题,类似于子类覆盖