Java多态——应用之打印机

简介: Java多态——应用之打印机

一、代码

/*
正常,不用多态写
class School{

public CaiSeDayin cy;
public HeBaiDayin hy;

public void anZhuang(CaiSeDayin cy){
    this.cy = cy;
}
public void anZhuangh(HeBaiDayin hy){
    this.hy = hy;
}

public void print(String contex){
    cy.print(contex);
}

}
*/

//多态写法,这样添加打印机就添加一个Dayin的子类就可以了
class School{

public Dayin dayinji;

public void anZhuang(Dayin dayinji){
    this.dayinji = dayinji;
}
public void print(String contex){
    dayinji.print(contex);
}

}

class Dayin{

public String pinpai;
public void print(String contex){}

}

class CaiSeDayin extends Dayin{

public void print(String contex){
    System.out.println("彩色打印机打印" + contex);
}

}

class HeBaiDayin extends Dayin{

public void print(String contex){
    System.out.println("黑白打印机打印" + contex);
}

}

class ZhenDayin extends Dayin{

public void print(String contex){
    System.out.println("针打印机打印" + contex);
}

}

public class Printor {

public static void main(String[] args) {
    /*正常,不用多态写
    School s = new School();
    CaiSeDayin c = new CaiSeDayin();
    s.anZhuang(c);
    s.print("xiao");
    
    HeBaiDayin h = new HeBaiDayin();
    s.anZhuangh(h);
    s.print("wei");
    */
    
    School s = new School();
    CaiSeDayin c = new CaiSeDayin();
    s.anZhuang(c);
    s.print("xiao");
    
    HeBaiDayin h = new HeBaiDayin();
    s.anZhuang(h);
    s.print("wei");
    
    ZhenDayin z = new ZhenDayin();
    s.anZhuang(z);
    s.print("小伟");
}

}

/*
彩色打印机打印xiao
黑白打印机打印wei
针打印机打印小伟
*/

目录
相关文章
|
6天前
|
Java 编译器
Java——类与对象(继承和多态)
本文介绍了面向对象编程中的继承概念,包括如何避免重复代码、构造方法的调用规则、成员变量的访问以及权限修饰符的使用。文中详细解释了继承与组合的区别,并探讨了多态的概念,包括向上转型、向下转型和方法的重写。此外,还讨论了静态绑定和动态绑定的区别,以及多态带来的优势和弊端。
20 9
Java——类与对象(继承和多态)
|
10天前
|
缓存 监控 Java
Java中的并发编程:理解并应用线程池
在Java的并发编程中,线程池是提高应用程序性能的关键工具。本文将深入探讨如何有效利用线程池来管理资源、提升效率和简化代码结构。我们将从基础概念出发,逐步介绍线程池的配置、使用场景以及最佳实践,帮助开发者更好地掌握并发编程的核心技巧。
|
7天前
|
SQL JavaScript 前端开发
用Java来开发Hive应用
用Java来开发Hive应用
20 7
|
7天前
|
SQL JavaScript 前端开发
用Java、Python来开发Hive应用
用Java、Python来开发Hive应用
18 6
|
6天前
|
Java 数据库连接 开发者
Java中的异常处理机制:理解与应用
在Java编程中,异常处理是一个核心概念,它允许程序在遇到错误时优雅地恢复或终止。本文将深入探讨Java的异常处理机制,包括异常的分类、如何正确使用try-catch-finally块以及throw关键字。我们将通过实例来说明如何在Java应用程序中有效地捕获和处理异常,以确保程序的健壮性和稳定性。
|
6天前
|
Java 调度 开发者
Java中的多线程基础及其应用
【9月更文挑战第13天】本文将深入探讨Java中的多线程概念,从基本理论到实际应用,带你一步步了解如何有效使用多线程来提升程序的性能。我们将通过实际代码示例,展示如何在Java中创建和管理线程,以及如何利用线程池优化资源管理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧,帮助你更好地理解和应用多线程编程。
|
7天前
|
存储 负载均衡 Java
Jetty技术深度解析及其在Java中的实战应用
【9月更文挑战第3天】Jetty,作为一款开源的、轻量级、高性能的Java Web服务器和Servlet容器,自1995年问世以来,凭借其卓越的性能、灵活的配置和丰富的扩展功能,在Java Web应用开发中占据了举足轻重的地位。本文将详细介绍Jetty的背景、核心功能点以及在Java中的实战应用,帮助开发者更好地理解和利用Jetty构建高效、可靠的Web服务。
21 2
|
11天前
|
Java 数据处理
技术分享:高效与灵活并存——Java版通用树形结构转换工具的实现与应用
在软件开发中,树形结构的数据表现形式无处不在,从文件系统的目录树到组织架构的部门树,再到各类产品的分类结构。处理这些具有层级关系的数据时,将其转换为树形结构以便展示和操作显得尤为重要。Java作为一门成熟的编程语言,虽然提供了强大的集合框架,但并未直接提供树形结构转换的内置工具。因此,开发一个高效且灵活的通用树形结构转换工具成为许多项目中的必备需求。
20 2
|
1天前
|
Kubernetes Cloud Native Java
探索未来编程新纪元:Quarkus带你秒建高性能Kubernetes原生Java应用,云原生时代的技术狂欢!
Quarkus 是专为 Kubernetes 设计的全栈云原生 Java 框架,凭借其轻量级、快速启动及高效执行特性,在 Java 社区脱颖而出。通过编译时优化与原生镜像支持,Quarkus 提升了应用性能,同时保持了 Java 的熟悉度与灵活性。本文将指导你从创建项目、编写 REST 控制器到构建与部署 Kubernetes 原生镜像的全过程,让你快速上手 Quarkus,体验高效开发与部署的乐趣。
8 0
|
1天前
|
Java 开发者
Java中的异常处理机制:理解与应用
在Java编程中,异常处理是确保程序稳定性和可靠性的关键。本文将深入探讨Java的异常处理机制,包括异常的分类、捕获和处理方法,以及如何有效地使用这些工具来提高代码质量。