侧边栏壁纸
  • 累计撰写 135 篇文章
  • 累计创建 1 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

抽象类

概述

应用场景

  • 父类知道每个子类都要做的某个行为,但每个子类要做的情况不一样时,父类就可以定义成抽象方法,交给子类去重写实现(更好的支持多态)

语法

  • 抽象类:访问修饰符 abstract 类名{}
  • 抽象方法:访问修饰符 abstract 返回类型 方法名([参数列表]);

注意事项

  • 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
  • 类该有的成员(成员变量、方法、构造器)抽象类都可以有
  • 抽象类中不能创建对象,仅作为一种特殊的父类,让子类继承并实现
  • 一个类继承抽象类,必须重写完抽象类中的全部抽象方法,否则这个类也必须定义为抽象类

demo

package com.static_;


public class Test {

    public static void main(String[] args) {
        Animal a1 = new Cat();
        a1.setName("小猫咪");
        a1.cry();

        Animal a2 = new Dog();
        a2.setName("小狗");
        a2.cry();

    }
}
package com.static_;

public abstract class Animal{
    private  String name;
    public abstract void cry();
    public String getName(){
        return name;
    }

    public void setName(String name){
        this.name = name;
    }

}

package com.static_;

public class Cat extends Animal{
    public void cry(){
        System.out.println(getName() + "喵喵喵");
    }
}

package com.static_;

public class Dog extends Animal{
    public void cry(){
        System.out.println(getName() + "汪汪汪");
    }
}

模板方法设计模式

解决了什么问题

  • 解决了方法中存在重复代码的问题

写法

  • 定义一个抽象类
  • 在抽象类中定义两个方法:
    • 模板方法:放相同的代码
    • 抽象方法:具体实现交给子类完成、
0
博主关闭了所有页面的评论