java装饰者模式的调用问题

  第一个普通的实现类,可以调用!
 而第二个升级的实现类,不可以调用(除非在升级的实现类里写上一个不带参数的空方法才可以new,为什么? 调用的时候(升级的实现类)也会报错,但是更改的内容可以显示出来!)

img

img

你好,因为第二个升级的实现类没有默认的空构造方法,所以不能直接new。
每一个类都有构造方法,写法是这样的。

public Customer(){
    
}

这是空的构造方法,你不写也没事,就算不写也会有这么一个方法。构造方法的作用就是在你new对象的时候,直接调用。

记住一个口诀:

1.类名打括号 = 调用构造方法,左边一定会有个new。

2.方法名打括号 = 调用这个方法,默认传入一个this(没有static的情况)

3.方法名打括号 = 调用这个方法,不传入this(有static的情况)

更多java基础知识,可以访问我的自学网站: