java - 创建空的子类构造函数
问题描述
public class Monitor extends Peripheral {
public Monitor(){
super();
}
public Monitor (String name,String maker, int age, int price,String type,int size,String res,String ports){
super(name,maker,age,price);
this.type = typel
this.size = size;
this.res = res;
this.ports = ports;
}
}
这是子类。我想制作它以便我可以创建一个监视器对象而不给它任何参数。这些是其父母的班级:
public class Product {
protected String name, maker;
protected int age,price;
public Product(){}
public Product(String name,String maker, int age, int price){
this.name = name;
this.maker = maker;
this.age = age;
this.price = price;
}
}
public class Peripheral extends Product {
//basically nothing here
private static double discount = 0;
public static void setDiscount(double disc){
discount = disc;
}
public static double getDiscount(){
return discount;
}
}
编译器说:错误:类 Peripheral 中的构造函数 Peripheral 不能应用于给定类型;极好的(); 必需:String、String、int、int 找到:无参数
解决方案
首先,你这里有一个错字:
public Monitor (String name,String maker, int age, int price,String type,int
size,String res,String ports){
super(name,maker,age,price);
this.type = typel <--- here(nasty semi-colons)
我认为您必须在监视器对象之前强制创建一个产品对象,因为您将丢失监视器试图获取的那些超级参数。
一种解决方法是,您可能想要创建另一个没有 super(params); 的构造函数。这样它就可以摆脱您遇到的错误。
因此,您应该执行以下操作,而不是您的构造函数:
public Monitor (String type,int size,String res,String ports){
this.type = type;
this.size = size;
this.res = res;
this.ports = ports;
}
希望这能解决您的问题!
推荐阅读
- assembly - 如何将双字数除以一个字数?
- javascript - 使 JavaScript 间隔与实际时间同步
- javascript - Vanilla Javascript - window.onscroll。为什么 ”" 滚动时不显示
- prolog - 如何从此代码中删除回溯?
- node.js - 将模块部署到运行 node.js 的远程服务器
- biztalk - 来自多出现节点的 BizTalk WCF-WebHttp 映射表单数据变量
- python-2.7 - 洪水填充以获得可用的细胞
- raspberry-pi - 如何连接 Raspberry Pi 3 和 FPGA cylone IV E Altera 进行 Uart 通信
- android - 如何为我的 Android 应用实现旋转横幅?
- postgresql - 可能的索引问题?- 如何提高查询速度?