一、接口
public interface MyInterface {
public static final int a=1;//默认的变量为public static final类型(常量),没有普通成员变量
public abstract void b();//接口中的所有的方法不带方法体
void a();//接口中所有方法默认为public abstract[public abstract void a()]类型
/*错误例子*/
//public MyInterface();//没有构造方法 不能new,不能实例化(但可以声明)
//public static void c();//不能有静态方法和其他非抽象的普通方法
}
二、抽象类
public abstract class MyClass { //(1)访问类型可以为 public,protected和默认类型
private int i; //(2)可以有成员变量
private static String s; //(3)可以有静态成员变量
private static final char s1='1'; //(4)常量
public MyClass(){ }; //(5)可以有构造方法,但不能实例化,可以声明
public static void main(String[] args){
//MyClass myClass1=new MyClass(); //报错,不能实例化
MyClass myClass=new MyChildClass(); //声明通过其子类(实现了其抽象方法)
}
public static void a(){}; //(6)可以有静态方法
public abstract void b(); //(7)可以有抽象方法,但不能有主体
}
class MyChildClass extends MyClass{
@Override
public void b() {} //(8)子类继承时候,需要实现父类的所有抽象方法,否则将其变为抽 抽象类
}
/*PS:
* (1)与基本类没有什么区别类似(2,3,4,5,6),特别的在与(1)不能为[private] 和 (7)[有抽象方法的类一定是抽象类]
*/