抽象类

1、抽象类可以没有抽象方法,有抽象方法的类必须是抽象类[注意:抽象类的抽象方法也是用abstract定义的]
2、非抽象类继承抽象类必须实现所有抽象方法
3、抽象类可以继承抽象类,可以不实现父类抽象方法
4、抽象类可以有方法实现和属性
5、抽象类不能被实例化
6、抽象类不能声明为final
7、抽象类可以有构造方法
/**
    抽象类:用abstract关键字声明的类称为抽象类
    很多具有相同特征和行为的的对象可以抽象为一个类
    很多具有相同特征和行为的类可以抽象为一个抽象类
*/

public class Test27 {
    public static void main(String[] args) {
        Man man = new Man();
        man.move();
        man.eat();
        Woman woman = new Woman();
        woman.move();
        woman.eat();

    }

}

abstract class Animal{
    public abstract void move(); //抽象方法的声明,抽象方法只有声明,没有实现
    public void sleep(){
        System.out.println("shuijiao");
    }
}

abstract class Person extends Animal{  //根据实际业务要不要第一个继承类也是抽象类
    public abstract void eat(); //抽象方法的声明,抽象方法只有声明,没有实现
}

//继承抽象类的具体类必须实现所有的抽象方法【包括继承的父类的父类】
class Man extends Person{
    public void move(){
        System.out.println("我爱跑步");
    }
    public void eat(){
        System.out.println("我爱吃水果");
    }
}

class Woman extends Person{
    public void move(){
        System.out.println("我爱逛街");
    }
    public void eat(){
        System.out.println("我爱吃水果too");
    }
}

模板方法模式Templete Method

定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中,模板方法模式使得子类可以
不改变一个算法的结构即可重新定义该算法的某些特定的步骤

public class Test28 {

    public static void main(String[] args) {
        UserManager um = new UserManager();
        um.action("test","add");

    }

}


abstract class Manager{
    public void action(String name,String method){
        if("admin".equals(name)){
            System.out.println("是管理员,可以操作");
            excute(method);
        }else{
            System.out.println("非管理员无法操作");
        }
    }
    
    
    public abstract void excute(String method);
}



class UserManager extends Manager{
    public void excute(String method){
        if("add".equals(method)){
            System.out.println("执行添加");
        }else if("del".equals(method)){
            System.out.println("执行删除");
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容