当前位置:  开发笔记 > 编程语言 > 正文

抽象类构造函数访问修饰符

如何解决《抽象类构造函数访问修饰符》经验,为你挑选了2个好方法。

抽象类只能用作由其他类扩展的基类,对吧?抽象类的构造函数可以具有通常的访问修饰符(public,protected和private(供内部使用)).使用哪个protected和哪个public正确的访问修饰符,因为抽象类型似乎表明技术上公共构造函数将受到很大程度的保护?我应该在所有构造函数上使用protected吗?



1> 小智..:

因为抽象类型似乎表明技术上公共构造函数将受到很大程度的保护

这是不正确的.抽象类不能通过调用其构造函数直接实例化,但是,任何具体实现都将继承抽象类的方法和可见性

所以抽象类当然可以有公共构造函数.

实际上,抽象类的构造函数只能从实现的构造函数中调用,因此它在公共或受保护之间没有区别.例如:

public class Scratch
{
    public static abstract class A
    {
        public A( int i ) {}
    }

    public static class B extends A
    {
        private B() { super(0); };
    }
}



2> IAmCodeMonke..:

如果此行为为真,并且我不确定它是什么,则应始终使用可用于应用程序的最受限制的作用域.所以在这种情况下,我建议使用protected.

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有