我有一个关于抽象类的问题。
首先...我正在使用谷歌翻译器,对不起:(希望你能理解。
如果抽象类不能实例化,那么这段代码是什么:
public class Ppal {
public void start(){
ABS clsAbs = new ABS() {
@Override
public void absMetod() {
}
};
clsAbs.metod();
}
}
public abstract class ABS{
public void metod(){}
public abstract void absMetod();
}
它可以用作匿名类,但这个类(ABS clsAbs=new ABS(){...
)不是匿名类。
提前非常感谢!
您正在实例化一个扩展类ABS
的匿名类。您可以实例化这个匿名类,因为它定义了abs
中的所有抽象方法(谢谢Nebelmann)
如果您创建一个类,如public class Foo extends abs
,它实现了absMetoD()
您可以执行以下操作:abs bar=new Foo()
我知道类和抽象类的主要区别是,抽象类不能被实例化, 但是我可以为抽象类创建对象 我用新的关键字创建了抽象的对象 我有一些问题在 Inet 上没有正确的答案, new关键字是否用于实例类? 2)实例只不过是对象吗? 3)mEarth被称为物体(地球的实例)吗? 现在我可以调用任何方法(作为回调或作为值返回)mearth . sand();mearth . land();使用地球物体
我查过了,发现最接近的是这个,除了我没有任何向前的声明。我在基类中只有一个纯虚函数,我在子类中实现它,如下所示: 命令H 命令cpp 数字H 数字cpp 发生文件错误: 一个dd.cpp 添加H
做对了"。事实证明,可以用来表示任何类似ListT-dod-right的东西。引用加布里埃尔·冈萨雷斯的话: 请注意,您可以仅使用变压器依赖项构建任何(不仅仅是管道中的那个)。例如,下面是如何实现: 这将在那里键入check作为any,并为所有人做正确的事情。 所以我的问题是:对于管道的消费者部分,是否有一个对偶到和到? 要求: 从不使用,只返回(或从不返回),但使用的管道可以表示为“双重到列表”
问题内容: 我明白: 由于抽象类本身并不是什么,例如车辆,我们想要创建一个具体实现的对象,例如Car,Bike等。 对象链期间将调用抽象类的构造函数。 我们永远不能直接创建抽象类的对象,即使它包含构造函数并且所有方法都已实现。 但是从编译器的角度来看,Java为什么要强制执行这些规则? 问题答案: 这不是技术限制,而是(如您所指出的)逻辑上的限制。Java(和许多其他语言)执行各种规则不是因为它们
我正在尝试实现上面提到的解决方案,但是在这里,我得到了一个错误“RowMapper是抽象的,不能实例化”和“表达式的非法开始”。下面正是我所说的
问题内容: 我知道,除了使用匿名类方法外,我们无法在Java中实例化接口或抽象类,但其背后的 原因 是什么? 问题答案: 您无法实例化接口或抽象类,因为它会违背面向对象的模型。 接口代表合同-接口实现者将能够做所有这些事情,履行合同的承诺。 抽象类是类似的想法,因为它们表示未履行的合同,是能够做事的承诺,除了与接口不同的是,它们定义了一些功能或字段,但需要在使用前进行填写。 简而言之,在一个好的面