如何判断Animal类或Mammal类是否具有构造函数?
动物a =新的哺乳动物(“大象”);
答案 0 :(得分:0)
因此,要回答您的问题,所有类必须至少有一个构造函数,即使其他类无法访问它们。
您可以识别开发人员手动添加的构造函数,请参阅下面的声明构造函数的代码示例。注释解释了如何声明构造函数。
public class Animal {
/*
*Constructors can be identified in code where the name is the same as the class and has no return type.
* The below constructor will require a String to be supplied in order to create an object of type animal.
*/
public Animal(String name){
//constructor code goes in here
}
}
即使该类没有像下面示例那样的明显声明的构造函数,也会在编译类时由JVM生成。
public class Animal {
/*
*Just because there is no visible constructor does not mean that one is not available,
*By default if no constructor is written a default no argument constructor will be provided after the code is compiled
*Such that this class can be instantiated as such new Animal()
*/
}
java中的默认构造函数是public,并且没有提供参数,以便上面的示例可以实例化为new Animal()。
最后,为了找出为特定类声明的构造函数,可以使用Java的反射库,下面是如何访问每个声明的构造函数的示例。
public class PrintConstructorsForClass {
public static void main(String[] args) {
for (Constructor<?> constructor : Animal.class.getDeclaredConstructors()) {
//Code to inspect each constructor goes in here.
}
}
}