答案是有的。
尽管抽象类不能直接进行实例化,但是继承类会调用该抽象类的构造函数。如果没有手动定义一个构造函数,编译器会自动为其创建一个无参,访问等级为protected的构造函数。
另外,如果手动为抽象类创建一个无参或有参的构造函数,编译器将不再自动创建构造函数,并且如果只有有参且参数没有默认值的构造函数,它的子类在定义构造函数时,也必须为它提供一个参数。