抽象类:用abstract关键字声明的类称为抽象类;
很多具有相同特征和行为的对象可以抽象为一个类,
很多具有相同特征和行为的类,可以抽象为一个抽象类。
package com.shujia.Polymerphic;
abstract class Animal {
public abstract void move();//方法的声明,抽象方法只有声明,没有实现
}
abstract class Person extends Animal {
public void sleep(){
System.out.println("人会睡觉");
}
public abstract void eat();
}
// 继承抽象类的具体类,必须实现所有抽象方法
class Man extends Person {
public void move() {
System.out.println("我是男人,我爱打篮球");
}
public void eat() {
System.out.println("我是男人,我爱吃饭");
}
}
class Women extends Person{
public void eat() {
System.out.println("我是女人,我爱吃苹果");
}
public void move() {
System.out.println("我是女人,我爱逛街");
}
}
// 抽象类无法被实例化
public class Demo1 {
public static void main(String[] args) {
Man man = new Man();
man.eat();
man.move();
Women women = new Women();
women.eat();
women.move();
}
}
抽象类的规则:
1、抽象类可以没有抽象方法,有抽象方法的类必须是抽象类。
2、非抽象类继承抽象类必须实现所有抽象方法
3、抽象类可以继承抽象类,可以不实现父类抽象方法
4、抽象类可以有方法实现和属性
5、抽象类不能被示例化
Animal animal = new Animal();
6、抽象类不能被声明为final
7、抽象类可以有构造方法