java-抽象类

来源:互联网 发布:腾讯视频链接不上网络 编辑:程序博客网 时间:2024/05/21 14:00

抽象类的特征:

  • 包含一个抽象方法的类必须是抽象类
  • 抽象类和抽象方法都要使用abstract关键字声明
  • 抽象方法只需声明不需要实现
  • 抽象类必须被子类继承,子类(如果不是抽象类)必须覆写抽象类中的全部抽象方法。

抽象类的定义比普通类多了一些抽象方法,其他地方与普通类的组成基本上一样。不同点在于抽象类不能直接实例化,但是抽象类中可以包含构造方法。

抽象类的应用-模板设计
想象这么一个场景:动物分为好多种,现在拿出来猫和狗,猫会喵喵喵叫,狗会汪汪汪叫。现在我们抽象出来一个Animal类,根据动物的不同发出的叫声不同。
抽象类Animal

 abstract  class Animal {    private String name;    public Animal(String name) {        this.name = name;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    //普通方法    public void say(){        this.getContent();    }    //抽象方法    public abstract void getContent();}

Dog

public class Dog extends Animal {    public Dog(String name){        super(name);    }    public void getContent(){        System.out.println(getName()+"汪汪汪");    }}

Cat

public class Cat extends Animal {    public Cat(String name){        super(name);    }    public void getContent(){        System.out.println(getName()+" 喵喵喵");    }}

test:

    @Test    public void test(){        Animal a1 = new Dog("dog");        Animal a2 = new Cat("cat");        a1.say();        a2.say();    }

result:

dog 汪汪汪
cat 喵喵喵

0 0
原创粉丝点击