Java学习高级三

抽象类





模板方法设计模式

java 复制代码
// People 模板
public abstract class People {
    /**
     * 设计模板方法设计模式
     */
    public final void write() {
        System.out.println("\t\t\t\t\t《我的爸爸》");
        System.out.println("\t\t我的爸爸,很牛逼");
        //2.模板方法并不清楚正文部分到底应该怎么写,但是他知道子类肯定要写
        System.out.println(writeMain());
        System.out.println("有这样的爸爸太好了");
    }

    // 3.设计一个抽象方法写正文,具体的实现交给子类
    public abstract String writeMain();
}
java 复制代码
// Student
public class Student extends People {
    @Override
    public String writeMain() {
        return "我的爸爸特别牛";
    }
}
java 复制代码
//Teacher
public class Teacher extends People {
    @Override
    public String writeMain() {
        return "我的爸爸非常棒,他很厉害";
    }

}
java 复制代码
// 测试类
public class Test {
    public static void main(String[] args) {
        // 抽象类饿应用场景 经常用来设计模板方法设计模式
        //场景:学生和老师都要写一篇作文: 我的爸爸
        //第一段一样
        //正文自由发挥
        //结尾一样
        Student s = new Student();
        s.write();
        Teacher t = new Teacher();
        t.write();
    }
}


接口

java 复制代码
public class Test {
    public static void main(String[] args) {
        // 接口的好处
        Student s = new A();
        /*Driver d = new A();
        d.drive();*/
        /*Singer s1 = new A();
        s1.sing();*/


        // 接口好处 快速切换司机 B 不行 就 A
        Driver d = new B();
        d.drive();
    }
}

class B implements Driver{
    @Override
    public void drive() {
        System.out.println("drive");
    }
}
class A extends Student implements Driver,Singer{
    @Override
    public void drive() {
        System.out.println("drive");
    }
    @Override
    public void sing() {
        System.out.println("sing");
    }
}
class Student{

}

interface Driver{
    void drive();
}

interface Singer{
    void sing();
}


相关推荐
墨黎芜11 分钟前
ArcGIS从入门到精通——地图符号、注记的初步使用
学习·arcgis·信息可视化
小李云雾15 分钟前
FastAPI重要知识点---中间件(Middleware)
学习·程序人生·中间件·fastapi·middleware
zuowei288927 分钟前
华为网络设备配置文件备份与恢复(上传、下载、导出,导入)
开发语言·华为·php
小夏子_riotous28 分钟前
Docker学习路径——3、常用命令
linux·运维·服务器·学习·docker·容器·centos
xiaohe0739 分钟前
超详细 Python 爬虫指南
开发语言·爬虫·python
嗑嗑嗑瓜子的猫1 小时前
Java!它值得!
java·开发语言
STLearner1 小时前
WSDM 2026 | 时间序列(Time Series)论文总结【预测,表示学习,因果】
大数据·论文阅读·人工智能·深度学习·学习·机器学习·数据挖掘
redaijufeng1 小时前
网络爬虫学习:应用selenium获取Edge浏览器版本号,自动下载对应版本msedgedriver,确保Edge浏览器顺利打开。
爬虫·学习·selenium
xiaoshuaishuai81 小时前
C# GPU算力与管理
开发语言·windows·c#
腾科IT教育1 小时前
零基础快速上岸HCIP,高效学习思路分享
学习·华为认证·hcip·hcip考试·hcip认证