概念:继承层次结构上移,位于上层的类会更加具有一般性,可能更加抽象
- 抽象类里面可以有抽象方法也可以有具体方法,在抽象类被继承时子类要重写抽象类的抽象方法。
- 抽象类不能直接实例化,可以通过实例化子类(非抽象)或匿名内部类
@Test
public void test(){
new Person1(){//匿名内部类
@Override
public String add() {
return null;
}
};
}
@Test
public void test1(){//实例化子类
Person1 person1=new Student1();
}
- 不可以省略超类中的抽象方法,只在子类中定义该方法,通过超类对象调用子类的方法,因为编译器只允许调用在类中声明的方法,不省略就可以
- 抽象方法没有方法体