Java 具有默认构造函数的抽象类与具有私有构造函数的类不同

Java 具有默认构造函数的抽象类与具有私有构造函数的类不同,java,abstract-class,private-constructor,Java,Abstract Class,Private Constructor,具有默认构造函数的抽象类和具有私有构造函数的类之间有什么区别 我还有一个疑问, 考虑下面这个程序。谁能给我解释一下,这样的代码有用吗 abstract class AbstractAndPrivate { AbstractAndPrivate() { AbstractAndPrivate ref= new AbstractAndPrivate(1) { @Override int m2() { // TODO Auto-generat

具有默认构造函数的抽象类和具有私有构造函数的类之间有什么区别

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

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();
}
}
具有默认构造函数的抽象类和具有私有构造函数的类之间有什么区别

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

请注意,您提供的代码不是这两种情况—它显式地提供了一个受包保护的无参数构造函数。这不是私有的,也不是默认的构造函数

类是否抽象与它提供的构造函数是正交的,尽管只有私有构造函数的抽象类强制您在声明类中创建子类以创建实例,而不仅仅依赖于您在声明类中创建实例

具有默认构造函数的抽象类和具有私有构造函数的类之间有什么区别

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

请注意,您提供的代码不是这两种情况—它显式地提供了一个受包保护的无参数构造函数。这不是私有的,也不是默认的构造函数

类是否抽象与它提供的构造函数是正交的,尽管只有私有构造函数的抽象类强制您在声明类中创建子类以创建实例,而不仅仅依赖于您在声明类中创建实例

具有默认构造函数的抽象类和具有私有构造函数的类之间有什么区别

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

请注意,您提供的代码不是这两种情况—它显式地提供了一个受包保护的无参数构造函数。这不是私有的,也不是默认的构造函数

类是否抽象与它提供的构造函数是正交的,尽管只有私有构造函数的抽象类强制您在声明类中创建子类以创建实例,而不仅仅依赖于您在声明类中创建实例

具有默认构造函数的抽象类和具有私有构造函数的类之间有什么区别

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

请注意,您提供的代码不是这两种情况—它显式地提供了一个受包保护的无参数构造函数。这不是私有的,也不是默认的构造函数


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

,抽象类可以有一个抽象方法,它需要由子类实现(除非它们也是抽象的)


编辑:-1?来吧,抽象方法也在某种程度上解释了抽象类和带有私有构造函数的类之间的逻辑区别。请……

另外,抽象类可以有一个抽象方法,需要通过子类实现(除非它们也是抽象的)


编辑:-1?来吧,抽象方法也在某种程度上解释了抽象类和带有私有构造函数的类之间的逻辑区别。请……

另外,抽象类可以有一个抽象方法,需要通过子类实现(除非它们也是抽象的)


编辑:-1?来吧,抽象方法也在某种程度上解释了抽象类和带有私有构造函数的类之间的逻辑区别。请……

另外,抽象类可以有一个抽象方法,需要通过子类实现(除非它们也是抽象的)

编辑:-1?来吧,抽象方法也在某种程度上解释了抽象类和带有私有构造函数的类之间的逻辑区别。请