抽象类 构造的修饰符
发布网友
发布时间:2022-04-22 04:01
我来回答
共4个回答
热心网友
时间:2023-12-18 18:29
这肯定是可以的撒。
abstract class t1
{
public t1()
{
}
}
抽象类是有构造函数的,就象我上面写的代码,你去试一下不会报错,不仅仅是private,就是public 也是可以的。
首先你的问题说明你没有了解抽象类的使用方法。抽象类一般自己不能实例化,只有之类可以将其实例化。子类继承了抽象类之后,实例化的时候会默认先调用父类的构造函数。如果父类的构造函数是私有的,那么子类不能继承此父类。如果抽象类的构造函数为私有的,同样此抽象类也不可能有子类了。
但这并不意味着抽象类没有子类就不可以使用了啊。如果是这样的话,就如你所以说java加入这个机制没有任何意义。
一个抽象类如果没有子类,但他又不能实例化对象,那么他在什么地方使用呢?? 我们可以使用其静态方法。
abstract class test
{
public static void print()
{
System.out.println("hello world");
}
}
下面是完整的使用例子:
class test
{
public static void main(String[]args)
{
t1.print();
}
}
abstract class t1
{
private t1(){}
public static void print()
{
System.out.println("hello world");
}
}
这样的使用方式在某些场合是能够用的上的。
热心网友
时间:2023-12-18 18:29
不想它被实例化或派生呗,可能里面只是几个public static的成员变量等等
热心网友
时间:2023-12-18 18:30
没人规定抽象类的构造方法不能被修饰为peivate啊
再定义一个getInstance(){return new AbstractClass();}不就行了 这还是个单例模式呢!
只是抽象类里面的抽象方法不能被修饰成private而已!
热心网友
时间:2023-12-18 18:30
语法没错就能编译,只不过确实没什么意义,不要那样写就是了