一、抽象类
不具体实现的方法和这个类被abstract修饰。
1、抽象类不可以被实例化。
2、抽象类当中可以有与普通类中一样的成员(变量、构造方法、普通方法、静态方法),就是不能实例化。
3、如果一个普通类继承了抽象类,那普通类中必须重写这个抽象类当中的所以抽象方法。
4、如果过一个抽象类B继承了抽象类A,抽象类B中不用重写抽象A中的抽象方法,B也可以 有自己的抽象方法。但是,如果又有一个普通类C继承了B,C中不仅要重写B中的抽象方法,还要重写A中的抽象方法。
5、抽象方法一定是要被重写的,所以它不能被private和final修饰。
abstract class A{
public abstract void func1(); //不用写括号了,直接写封号。
}
abstract class B extends A { //抽象类继承抽象类
public abstract void func2();
}
class C extends B { // 普通类继承抽象类
@Override
public void func1() { //重写
}
@Override
public void func2() { //重写
}
}
二、接口类
被interface修饰,被修饰的类第一个字母为大写I开头
1、接口当中的方法是没有具体实现的。
2、接口中的成员变量默认都是被public static final修饰的,