java - 覆盖实例化 Java 对象中的方法

标签 java oop methods overriding

我想重写一个我无法控制的工厂交给我的对象中的方法。

我的具体问题是我想覆盖 Socket objectgetInputStreamgetOutputStream 来执行 wire记录

一般问题如下:

public class Foo {
    public Bar doBar() {
        // Some activity
    }
}

我想使用实例化的 Foo 并将 doBar 替换为我自己的,其工作方式如下:

Bar doBar() {
    // My own activity
    return original.doBar();
}

对于 Socket,我将返回一个 InputStreamOutputStream,它们通过日志记录来截取数据。

最佳答案

由于 Java 使用基于类的 OO,这是不可能的。您可以使用 decorator pattern ,即为返回包装流的对象编写一个包装器。

关于java - 覆盖实例化 Java 对象中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3875666/

相关文章:

java - 按下后退按钮时 SwitchCompat 状态发生变化

java - Android 上的 JIBX。 LogCat 显示从方法 'Y + 异常 java.lang.VerifyError 引用的 : Could not find class 'X' ,

java - 如何使用 java 中的当前和本地夏令时和时区信息将 joda LocalDateTime 对象设置为指定时间

java - 面向对象设计 : Which is better practice?

jquery插件方法返回值不是对象

class - Java Quarkus 从 Swagger 中删除方法

java - 在 java 中使用 Vector 安全吗?

c# - 策略模式与多态有何不同?

c# - 如何建模对象以随时间跟踪设备/ Assets ?

javascript - 在字符串变量上调用 toUppercase()