栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

java中继承与委派有什么区别

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java中继承与委派有什么区别

当您委托时,您只是在调用一个知道必须做什么的类。您并不真正在乎它是 如何 执行的,您所 关心的 只是您正在调用的类知道需要做什么。

如果我是您,我将创建一个接口并命名该接口

IPrinter
(或类似名称的接口),该接口具有一个名为的方法
print
。然后,我将
RealPrinter
实现此接口。最后,我将这一行:更改
RealPrinterp = new RealPrinter();
为:
IPrinter p = new RealPrinter()

既然

RealPrinter
实现了
IPrinter
,那么我肯定知道它有一个
print
方法。然后,我可以通过将其委托给适当的类来使用此方法来更改应用程序的打印行为。

这通常可以提供更大的灵活性,因为您无需将行为嵌入到特定的类中,而是将其留给另一个类。

在这种情况下,要更改应用程序在打印方面的行为,您只需要创建另一个实现的类,

IPrinter
然后将以下行更改
IPrinter p = newRealPrinter();
为即可
IPrinter p = new MyOtherPrinter();

public interface IPrinter {    void print();}public class RealPrinter implements IPrinter {    @Override    public void print() {        System.out.println("This is RealPrinter");    }}public class RealPrinter2 implements IPrinter {    @Override    public void print() {        System.out.println("This is RealPrinter2");    }}public class Main {    public static void main(String...arg){        IPrinter printer  = new RealPrinter();        printer.print();        printer = new RealPrinter2();        printer.print();    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/453534.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号