从实现的类创建对象的正确语法是什么 因为我同时使用java和C++,有时我会混淆语法。我的问题很简单。我需要创建一个由其他类实现的类IBuyer。我正在尝试编写一个函数,它将在我的Main中返回一个IBuyer对象,但它表示它的抽象,无法实例化。我将抽象添加到其他类的定义中,但它仍然不喜欢它。它想要什么
IBuyer级别:从实现的类创建对象的正确语法是什么 因为我同时使用java和C++,有时我会混淆语法。我的问题很简单。我需要创建一个由其他类实现的类IBuyer。我正在尝试编写一个函数,它将在我的Main中返回一个IBuyer对象,但它表示它的抽象,无法实例化。我将抽象添加到其他类的定义中,但它仍然不喜欢它。它想要什么,java,Java,IBuyer级别: public interface IBuyer { String GetName(); String GetPassword(); void SetName(String sName); void SetPassword(String sPass); } //end interface IBuyer 另一个名为Standard的类: public abstract class Standard implements IBuye
public interface IBuyer {
String GetName();
String GetPassword();
void SetName(String sName);
void SetPassword(String sPass);
} //end interface IBuyer
另一个名为Standard的类:
public abstract class Standard implements IBuyer {
private String userSName;
private String userSPass;
private String userSType;
.
.
.
}
My Main.java文件:
public IBuyer GetUser (String name, String password) {
IBuyer newBuyer = new IBuyer(name, password);
return newBuyer;
};
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String uName;
String uPass;
。
.
}
这是它不喜欢的,我需要语法帮助:
IBuyer newBuyer = new IBuyer(name, password);
谢谢错误试图告诉您,您无法创建接口或抽象类的实例
相反,您需要创建继承接口标准的具体类的实例根据命名约定判断,IBuyer是某种类型的接口,您不能使用new关键字实例化接口。它们没有实施 您需要做的是从接口派生,并实例化派生类 现在你已经在一定程度上做到了,但你已经把它抽象化了
public abstract class Standard implements IBuyer {
关键字abstract意味着类本身不能实例化,相反,它应该派生自
因此,如果您打算实例化标准,那么就应该去掉abstract关键字。和使用
IBuyer newBuyer = new Standard(name, password);
您也可以从标准派生另一个类,例如
public class MyClass extends Standard{
然后使用
IBuyer newBuyer = new MyClass(name, password);
你只能实例化一个具体的类,不能实例化一个抽象的类。你也不能实例化那样的接口。你认为这行代码做什么?我在其他类的定义中添加了抽象,但它仍然不喜欢它。请保护您自己的理智,不要添加您不理解的代码来修复您不理解的错误。你会陷入比以前更糟糕的困境。你还需要了解抽象的含义。投票表决,但标准目前是抽象的,而不是具体的。这仍然需要一个构造函数。谢谢你,山姆,这很有意义。说明含糊不清也无济于事,书中的解释就好像你是java编程新手一样,我不是,但我想我明白了。