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
针打印机打印小伟
*/

目录
相关文章
|
1天前
|
存储 Java 测试技术
Java零基础-多态详解
【10月更文挑战第10天】Java零基础教学篇,手把手实践教学!
10 4
|
2天前
|
Java 测试技术 程序员
💡Java 零基础 | 深入理解注释的重要性与应用
【10月更文挑战第10天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
10 5
|
1天前
|
设计模式 算法 Java
Java中的多态性:深入理解与应用
【10月更文挑战第16天】 在Java编程的广阔天地中,多态性作为一种强大的面向对象特性,扮演着至关重要的角色。它允许我们以统一的方式处理不同类型的对象,极大地提高了程序的灵活性和可扩展性。本文将深入浅出地探讨Java中多态性的概念、实现机制以及在实际开发中的应用,帮助读者更好地理解和运用这一特性。
|
2天前
|
开发框架 Java 程序员
揭开Java反射的神秘面纱:从原理到实战应用!
本文介绍了Java反射的基本概念、原理及应用场景。反射允许程序在运行时动态获取类的信息并操作其属性和方法,广泛应用于开发框架、动态代理和自定义注解等领域。通过反射,可以实现更灵活的代码设计,但也需注意其性能开销。
11 1
|
3天前
|
Java 测试技术 程序员
💡 Java 零基础 | 探索 if 条件语句的应用与技巧
【10月更文挑战第9天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
9 2
|
6天前
|
Java 编译器 程序员
Java多态背后的秘密:动态绑定如何工作?
本文介绍了Java中多态的实现原理,通过动态绑定和虚拟方法表,使得父类引用可以调用子类的方法,增强了代码的灵活性和可维护性。文中通过具体示例详细解析了多态的工作机制。
18 4
|
7天前
|
移动开发 Java 大数据
深入探索Java语言的核心优势与现代应用实践
【10月更文挑战第10天】深入探索Java语言的核心优势与现代应用实践
16 4
|
9天前
|
并行计算 Java API
Java中的Lambda表达式及其应用
本文将深入探讨Java中的Lambda表达式,从基本概念到实际应用。我们将了解Lambda表达式的定义、优势和使用场景,并通过实例展示其在Java编程中的强大功能。无论是初学者还是经验丰富的开发者,都可以从中获得有价值的见解。
|
10天前
|
Java 编译器
Java“操作符 ... 不能应用于 x”解决
当Java编译器报错“操作符 ... 不能应用于 x”时,通常是因为你尝试对不支持该操作符的数据类型执行了操作。解决方法包括:确保数据类型兼容、使用正确的类型转换或选择合适的方法。检查代码中的变量类型和操作符使用是否正确。
|
11天前
|
存储 Java 测试技术
Java零基础-多态详解
【10月更文挑战第1天】Java零基础教学篇,手把手实践教学!
21 1