点我
抽象类
概述
应用场景
- 父类知道每个子类都要做的某个行为,但每个子类要做的情况不一样时,父类就可以定义成抽象方法,交给子类去重写实现(更好的支持多态)
语法
- 抽象类:访问修饰符 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() + "汪汪汪");
}
}
模板方法设计模式
解决了什么问题
- 解决了方法中存在重复代码的问题
写法
- 定义一个抽象类
在抽象类中定义两个方法:
- 模板方法:放相同的代码
- 抽象方法:具体实现交给子类完成、
分类:
JAVA
版权申明
本文系作者 @小白学安全 原创发布在 xbxaq.com 站点,未经许可,禁止转载!
评论