gpt4 book ai didi

java - 具有默认构造函数的抽象类和具有私有(private)构造函数的类的区别

转载 作者:行者123 更新时间:2023-12-01 23:20:39 25 4
gpt4 key购买 nike

具有默认构造函数的抽象类和具有私有(private)构造函数的类有什么区别?

我还有一个疑问,考虑下面这个程序。谁能解释一下。这样的代码有什么用吗?

abstract class AbstractAndPrivate 
{
AbstractAndPrivate()
{
AbstractAndPrivate ref= new AbstractAndPrivate(1) {

@Override
int m2() {
// TODO Auto-generated method stub
return 0;
}
};

}
void m1()
{
System.out.println("m1() accessed");
}
abstract int m2();

AbstractAndPrivate(int a)
{

}
public static void main(String[] args) {

System.out.print("hello ");

AbstractAndPrivate ref= new AbstractAndPrivate() {public int m2(){return 1;}};
System.out.println(ref);
ref.m1();
ref.m2();
}
}

最佳答案

what's the difference between an Abstract class with a default constructor and a class with private constructor?

如果有默认构造函数,则可以从子类中调用它。如果它是私有(private),您将只能在同一个类中创建子类,因为这是唯一可以访问私有(private)构造函数的上下文。

请注意,您提供的代码都不是这些情况 - 它显式提供了受包保护的无参数构造函数。这不是私有(private)的,也不是默认的构造函数。

该类是否为抽象类与其提供的构造函数正交,尽管仅具有私有(private)构造函数的抽象类会强制您在声明类中创建子类以创建实例,而不是而不仅仅是依赖于您在声明类中创建实例。

关于java - 具有默认构造函数的抽象类和具有私有(private)构造函数的类的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20685195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com