day10-抽象

70 阅读2分钟
/*
    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()+"员工,正在研发淘宝网站");
    }