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后面的类型更改即可,其他代码无需改动,因此提高了代码的可维护性和可扩展性。
该方式的缺点在于:父类引用不能直接调用子类独有的方法,若调用则需要强制类型转换。
阅读全文
0 0
- java之设计模式---模板设计模式
- java设计模式之模板设计模式
- Java设计模式之模板设计模式
- Java设计模式之模板
- Java设计模式之模板方法模式
- Java模式设计之模板方法模式
- java设计模式之模板方法模式
- Java设计模式之模板方法模式
- JAVA-设计模式之模板方法模式
- Java--设计模式之模板方法模式
- java设计模式之模板方法模式
- 《Java设计模式》之模板方法模式
- JAVA设计模式之:模板方法模式
- java设计模式之模板模式
- 【java】设计模式之模板方法模式
- java设计模式之模板模式
- java设计模式之模板方法模式
- Java设计模式之模板方法模式
- (三)c#整合zeroIce
- Java的基础字符串的一些方法
- Java API操作Hive
- Gym 100206B Fire station building(三分)
- el表达式的内置对象
- Java设计模式之模板设计模式
- POJ 1523 SPF (割点)
- python_lintcode_697Check Sum of Square Numbers_114不同的路径
- 第三周-项目1-顺序表的基本运算
- Html5(离线&存储,多媒体,Web Sockets,Web Workers,History API2D/3D绘图)
- memcache的一致性hash算法使用
- Java 课堂笔记 4
- 关于Icon,Image,ImageIcon的简单的对比参考
- 2017-10-7离线赛题解