Java设计模式之模板设计模式

来源:互联网 发布:局域网未识别的网络 编辑:程序博客网 时间:2024/05/19 17:25
public abstract class TestAbstract {    private int cnt;    public TestAbstract() {        super();    }    public TestAbstract(int cnt) {        super();        setCnt(cnt);    }    public int getCnt() {        return cnt;    }    public void setCnt(int cnt) {        this.cnt = cnt;    }    //自定义抽象方法    public abstract void show();    public static void main(String[] args) {        //TestAbstract ta = new TestAbstract();        //System.out.println("ta.cnt = " + ta.cnt); //0    }}
public class TestSubAbstract extends TestAbstract {    public static void main(String[] args) {        //子类的引用指向子类自己的对象        TestSubAbstract tsa = new TestSubAbstract();        //子类的引用只能调用子类自己的show()方法        tsa.show();        System.out.println("---------------------------");        //父类的引用指向子类的对象,形成了多态        TestAbstract ta = new TestSubAbstract();        //在编译阶段调用父类的show()方法,在运行阶段调用子类重写以后的方法        ta.show();    }    @Override    public void show() {        System.out.println("抽象类");    }}

抽象类与模板设计模式
1、抽象方法
抽象方法就是指不能被具体实现的方法,也就是没有方法体,并且使用abstract关键字修饰
语法格式:
访问控制符 abstract 返回值类型 方法名称(形参列表);
如:
public abstract void cry();

2、 抽象类
抽象类就是指使用abstract关键字修饰的类,抽象类体现在不能实例化对象。

3、注意事项
a)抽象类中可以有成员变量、成员方法以及构造方法;
b)抽象类中可以有抽象方法也可以没有;
c)拥有抽象方法的类必须是抽象类,因此通常情况下认为拥有抽象方法并且有abstract关键字修饰的类才认为是真正的抽象类;

4、实际意义
抽象类的实际意义不在于实例化对象而在于被继承,若一个类继承自抽象类则必须要重写抽象方法,否则该类也得变成抽象类。
因此,抽象类对子类具有强制性和规范性,叫做模板设计模式

经验分享
在以后的开发中推荐使用父类引用指向子类对象的形式,因为父类引用直接调用的方法一定是父类拥有的方法,当需要更换指向的子类对象时,只需要将new后面的类型更改即可,其他代码无需改动,因此提高了代码的可维护性和可扩展性。
该方式的缺点在于:父类引用不能直接调用子类独有的方法,若调用则需要强制类型转换。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孕妇爱喝茉莉茶怎么办 干菊花生虫了该怎么办 黑枸杞放了两年怎么办 来大姨妈喝茶了怎么办 干柠檬片过期了怎么办 山地玫瑰根黑了怎么办 带18k的金过敏怎么办 18k钻戒断了怎么办 18k钻戒戒托变色怎么办 苹果七中间按键脱漆怎么办 苹果手机屏幕边缘掉漆了怎么办 十八k白金变色了怎么办 手机后面掉漆了怎么办 玫瑰金戒指刮花了怎么办 玫瑰金手镯刮花了怎么办 玫瑰金链子断了怎么办 dw玫瑰金掉色了怎么办 6s玫瑰金氧化了怎么办 书本湿的很严重怎么办 除湿盒的水满了怎么办 书被水泡变黄了怎么办 文件纸被弄皱了怎么办 纸的一角皱了怎么办 裤子被雨水打湿变色了怎么办 书本上粘了有油怎么办 手被水泡了皱了怎么办 水泡破了感染了怎么办 夏天腋下出汗会弄湿衣服怎么办 夏天腋下出汗多弄湿衣服怎么办 上眼皮干燥起皮怎么办 怀孕下面湿又痒怎么办 内裤穿久了有异味怎么办 刨腹产私处捂烂了怎么办 猫咬手指出血了怎么办 老有白带涌出来怎么办 耳朵里塞了珠子怎么办 树脂发光字烧了怎么办 马蹄莲长得太高怎么办 百合球的芽断了怎么办 种的百合开败怎么办 盆栽百合花开完之后怎么办