`
help
  • 浏览: 22083 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

java 中一种另类的模板方法写法

阅读更多
有一种模板方法大家应该都很熟悉。
public abstract class Father {
    // 基本方法
    protected abstract void doSomething();

    // 基本方法
    protected abstract void doAnything();

    // 模板方法
    public void templateMethod() {
        /*
         * 调用基本方法,完成相关的逻辑
         */
        this.doAnything();
        this.doSomething();
    }
}
public class Son extends Father{

    @Override
    protected void doSomething() {
        System.out.println("Son doSomething");
    }

    @Override
    protected void doAnything() {
        System.out.println("Son doAnything");
    }
   
}

public class TestMain {
    public static void main(String[] args) {
        Son son = new Son();
        son.templateMethod();
    }
}


------------------------------------------------------------------

那下面这种写法是什么原理:

public abstract class Father {
    // 基本方法
    protected abstract void doSomething();

    // 基本方法
    protected void doAnything(){
       templateMethod();
    }

    // 模板方法
    public void templateMethod() {
       System.out.println("111");
    }
}

public class Son extends Father{

    @Override
    protected void doSomething() {
        doAnything();
    }

    // 模板方法
    public void templateMethod() {
       System.out.println("222");
    }
   
}

public class TestMain {
    public static void main(String[] args) {
        Son son = new Son();
        son.doSomething();
    }
}

//打印了222

先调用父类方法doAnything,又会调用子类的非抽象方法templateMethod
分享到:
评论

相关推荐

    java for循环的几种写法

    "java for 循环的几种写法" 在 Java 编程语言中,for 循环是一种非常常用的循环语句,用于遍历数组、Collection 等类型的对象。在 J2SE 1.5 中,Java 引入了一种新的 for 循环语法,称为“增强的 for 循环”或...

    ( java JDBC连接不同的数据库写法sql,oracle,mysql

    java JDBC连接不同的数据库写法sql,oracle,mysql 的很好例子

    C++模板学习\模板的概念\函数模板的写法

    ### C++模板学习:模板的概念与函数模板的写法 #### 模板的概念 在C++编程语言中,模板是一种非常强大的特性,它允许程序员编写能够处理多种数据类型的通用代码。这种能力通常被称为“泛型编程”。通过使用模板,...

    java-单例模式几种写法

    在Java中,实现单例模式有多种方法,每种方法都有其特点和适用场景。以下是对这六种常见单例模式实现方式的详细解释: 1. **饿汉式(静态常量)** 这是最简单的单例实现,它在类加载时就创建了实例,线程安全。 `...

    java输入输出流的两种写法

    以下是两种常见的Java输入输出流的写法及其详细解释: 1. 字节流: - **FileInputStream** 和 **FileOutputStream**:这是处理文件输入输出的基本字节流类。`FileInputStream` 用于从文件读取字节,而 `...

    程序员简历模板参考写法

    程序员简历模板参考写法 程序员简历模板是程序员在找工作或晋升时不可或缺的一份文件,一个好的简历模板可以让程序员更容易地找到工作机会。下面,我们将详细讲解程序员简历模板的各个部分,包括个人信息、教育背景...

    关于动态规划求最大子段和的Java代码写法

    关于动态规划求最大子段和的Java代码写法 ...本文提供了一种使用 Java 语言实现动态规划算法来求最大子段和的代码写法,通过使用动态规划算法,我们可以高效地计算最大子段和,并且可以扩展到解决更多复杂的问题。

    Java中素数的写法

    关于Java中素数的概念,及Java代码的写法,写了几种方法

    java中驼峰与下划线的写法互转

    本文将详细介绍如何在Java中实现这两种命名方式的互转,并提供一个自编的工具类示例。 首先,我们要理解驼峰式命名(CamelCase)和下划线命名方式。驼峰式命名分为大驼峰(每个单词首字母大写,如`UserName`)和小...

    java中配置文件数据库连接写法

    在Java编程中,配置文件是用于存储应用程序的配置信息,如数据库连接参数,这使得代码与配置分离,便于管理和维护。下面将详细讲解如何在Java中编写配置文件以实现数据库连接。 1. 配置文件格式 最常见的配置文件...

    【Java面试题】单例的写法

    【Java面试题】单例的写法

    详解java中的6种单例写法及优缺点

    详解java中的6种单例写法及优缺点 在 Java 中,单例是一种常用的设计模式,它可以确保一个类只有一个实例,并提供一个全局访问点来访问该实例。单例模式可以应用于各种场景,如数据库连接池、日志记录器、线程池等...

    C#中一种替换switch语句更优雅的写法

    在C#编程中,当遇到大量条件分支时,传统的switch语句可能会变得冗长且不易维护。在这种情况下,我们可以寻找更...这种设计模式被称为策略模式,是面向对象设计中的一种常见模式,有助于降低代码复杂度,提高可维护性。

    Java 10 大装 B 写法,看完可以出去吹牛逼了!

    本文将介绍10种Java中的“装B”写法,让你的代码更加炫酷。 1. **集合初始化** 在Java中,集合初始化可以通过匿名内部类的方式实现,将创建和赋值过程一步到位。例如: ```java List<String> list = new ...

    java路径两种写法.docx 新手资源,小白学习使用,java学习使用

    ### Java路径两种写法详解 #### 一、引言 在Java编程中,处理文件路径是非常常见的需求之一。为了确保程序具有良好的可移植性与兼容性,了解如何正确地使用路径变得尤为重要。本文将深入探讨Java中两种常用的路径...

    java导出图片到word简易写法

    在Java编程中,将图片导出到Word文档是一项常见的任务,尤其在生成报告或文档时。这个简易写法主要是利用Apache POI库来实现的,Apache POI是一个强大的API,用于处理Microsoft Office格式的文件,如Word(.doc/....

    java单例模式开发的7种写法

    ### Java单例模式开发的七种写法 #### 概述 单例模式是一种常用的软件设计模式,其目的是确保一个类仅有一个实例,并提供一个全局访问点。在Java编程语言中,实现单例模式的方法有很多种,不同的实现方式具有不同的...

    Java常用的反射方法

    反射获取Class类对象的三种方法 2.1 通过全类名的方式获取 2.2 类名.class 2.3 实例对象.getClass() 2.4 总结 3. 反射获取属性变量 3.1 获取所有public修饰符的成员变量 3.2 获取指定字段并赋值 3.3 获取...

    MyEclipseJava开发的代码模板

    团队开发中,代码风格和格式需要统一,不然每个人的注释,格式,写法都不一样,很糟糕的,作为团队技术管理者,如何把控代码质量,首先要从代码格式上统一起来,这是我提供的一份MyEclipseJava开发的代码模板。...

    java main 方法的写法, code= download

    java main 方法的写法 以及使用方式 public static void main(String[] args)

Global site tag (gtag.js) - Google Analytics