wangbin_learn 2016-06-03 14:01 采纳率: 0%
浏览 3709

java 的子类化 是什么?

今天看到Effective Java书中提到了一个子类化的概念,网上查了下说是什么
组合不是继承。还是有些不太明白,按照这个说法,子类化是不是可以理解为
那个装饰者模式呢?装饰者模式不也是组合扩展吗?请知道的大神,告诉下这样理解对吗? 谢谢了。

  • 写回答

3条回答

  • SeventeenWen 2016-06-22 12:17
    关注
    //这是一个父类Demo
    public class SunDemo {
    //私有的构造器
    private SunDemo(){
    }
    //通过静态工厂方法得到对象
    public static SunDemo value(){
        return new SunDemo();
    }
    //父类的方法
    public void say(){
        System.out.println("SunDemo say()");
    }
    
    }
    
     //子类Demo
    
     public class Demo extends SunDemo{
    
    }
    

    error:Implicit super constructor SunDemo() is not visible for default constructor. Must define an explicit constructor

    说明SunDemo没有公共的构造器,它不允许被继承。就是说你的类使用了静态工厂方法提供对象的实例化,没有提供public的构造器,那么这个类就不允许被继承。我们如果想要在Demo类中使用SunDemo的方法就得使用复合。

    public class Demo {
    
    SunDemo d = null;
    
    @Test
    public void DemoTest(){
    
        d=SunDemo.value();
        d.say();
    }
    

    }

    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料