1.抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。
2.抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的。
3.抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
4.抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。除非该子类也是抽象类。
例如:
package 类和对象;
import java.util.Arrays;
public class Democ06 {
public static void main(String[] args) {
// Animal animal = new Animal(); // 错误!
// Dog dog = new Dog(); // 错误,这也是抽象类。
Dog2Ha ha = new Dog2Ha(); // 相当于使用孙子辈对象
ha.eat();
ha.sleep();
System.out.println("=================");
DogGolden golden = new DogGolden(); // 相当于使用孙子辈对象
golden.eat();
golden.sleep();
}
}
package 类和对象;
//子类也是一个抽象类
public abstract class Dog extends Animal {
@Override
public void eat(){
System.out.println("狗吃骨头");
}
}
package 类和对象;
public class DogGolden extends Dog {
@Override
public void sleep() {
System.out.println("呼呼呼...");
}
}
package 类和对象;
public class Dog2Ha extends Dog {
@Override
public void sleep() {
System.out.println("嘿嘿嘿...");
}
}