Java final类&所有构造方法均为private的类(类型说明符&访问控制符)

时间:2022-04-12 08:31:58

1. final类型说明符,表示关闭继承,即final类不能有子类;

但final类可能可以在类外创建对象(即final类的构造方法可以不是private型):

在同一包中时,可以在任何另外一个类中使用public类与友好类创建对象;

不在同一包中时(import语句),可以在任何另外一个类中使用public类创建对象。

2. private访问控制符private方法不能在类外调用所有构造方法都是private的类,不可以在该类外创建对象,也不能有子类

说明:

所有构造方法都是private的类,不能有子类。

(编译器会报错:Implicit super constructor PrivateConstructor() is not visible for default constructor. Must define an explicit constructor.)

 public class PrivateConstructor {
private PrivateConstructor() {
// TODO Auto-generated constructor stub
}
} //erro:所有构造方法都是private的类,不能有子类
//class A extends PrivateConstructor {
//
//}

当用子类的构造方法创建一个子类对象时,子类的构造方法总是先调用父类的某个构造方法(即如果子类的构造方法没有明显地指明使用父类的哪个构造方法,子类调用父类的不带参数的构造方法);若是父类没有非私有的构造函数,那么子类便不能创建对象。