/*
3.抽象类的定义格式:
public abstract class 类名 {
...
}
4.抽象方法的定义格式:
修饰符 abstract 返回值类型 方法名称(参数列表...);---去掉{}
返回值类型和参数列表根据需求确定
含有抽象方法的类,必须定义为抽象类,但是抽象类中不一定含有抽象方法
5.抽象类的使用
(1)不能直接创建抽象类的对象
public abstract class Animal ----Animal a = new Animal()错误;
只能创建其非抽象子类的对象 Dog dog = new Dog();
(2)定义子类,继承抽象父类
(3) 快捷键: ctrl + i--子类中覆盖重写抽象父类中的所有抽象方法 去掉abstract关键字,添加{}
(4)创建子类对象
(5)子类对象调用方法
1.抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象
2.抽象类中,必须有构造方法,是供子类创建对象时,初始化父类成员使用的
3.抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类 看: MyAbstractClass
4.抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。除非该子类也是抽象类
看: Cat10类,BoSiCat10类
没有抽象方法的类,也可以定义为抽象类
抽象父类Animal中有两个抽象方法eat和sleep
子类只重写了一个抽象方法eat,相当于子类自己内部还有一个抽象方法
所以父类中sleep必须定义为抽象类
public abstract void sleep();
public public abstract
public void method
子类中如果父类没有
@Override
public void work() {
System.out.println("- JavaEE工程师: 员工号为"+getId()+"的 "+getName()+"员工,正在研发淘宝网站");
}