抽象:我的认知是提前描述需要重载的众多方法。每一个对象重载的内容不一样,但是类型一样,这样就可以使用抽像类来将这些内容进行封装。
abstract class People {
People() {
System.out.println("我是人");
}
abstract void sleep();
abstract void eat();
}
class Student extends People {
public void sleep() {
System.out.println("我要睡觉");
}
public void eat() {
System.out.println("睡好觉了,我要吃饭");
}
}
class Student2 extends People {
public void sleep() {
System.out.println("我想吃过饭再睡觉");
}
public void eat() {
System.out.println("睡好觉了,我还想吃饭");
}
}
public class Demo {
public static void main(String[] args) {
Student s = new Student();
s.sleep();
s.eat();
Student2 s2 = new Student2();
s2.sleep();
s2.eat();
}
}
抽象类中可以没有抽象方法,但是有抽象方法的类一定是抽象类。
抽象类一定是父类,但不一定是顶层父类。
抽象类不能够创建对象,但是有构造方法,为子类对象初始化使用的。
抽象关键字不能与static final private共存