我试图写一个类(SalaryEmployee)和子类(ComissionEmployee),但我没有得到正确的工资,我不能做SE1.SetSalesMount(20000)。我哪里出了问题?
这是主要的:
public static void main(String[] args) {
SalaryEmployee se1 = new CommissionEmployee("E3", "John", 10000);
se1.setSalesAmount(20000) // not found
System.out.println(se1.getSalary());
}
public class SalaryEmployee {
private String id;
private String name;
double salary;
public SalaryEmployee(String id, String name, double salary) {
this.id = id;
this.name = name;
this.salary = salary;
}
public double getSalary() {
return salary;
}
public String toString() {
return "ID=" + id + " Name=" + name + " Salary=" + salary;
}
}
public class CommissionEmployee extends SalaryEmployee {
private double baseSalary;
private double salesAmount;
public CommissionEmployee(String id, String name, double salary) {
super(id, name, salary);
this.baseSalary = salary;
}
public void setSalesAmount(double amount) {
this.salesAmount = amount;
}
public double getSalesAmount() {
return salesAmount;
}
public double getSalary() {
if (salesAmount <= 10000 || salesAmount < 20000) {
return 1.03 * baseSalary;
} else if (salesAmount > 20000) {
return 1.05 * baseSalary;
} else if (salesAmount < 10000) {
return baseSalary;
}
return baseSalary;
}
}
您将se1创建为SalaryEmployee
类型,该类型没有setsalesamount()
方法。因此,您需要将se1降至CommissionEmployee:
((CommissionEmployee)se1).setSalesAmount(20000)
超类 子类
我一直在做一个基本的类继承练习,尽管我认为我已经掌握了它的jist,但我的程序并没有按应有的方式工作。我遇到了编译错误,但还没有弄清楚原因——如果你们都能在这里帮助我,那就太好了。 首先,这里有三个文件1。人java——基类2。大学生java——一个派生的Person类。java 3。家庭java——不太确定,我认为它是自己的基类 人java有两个实例变量,String name和int age,
我在Java实践继承,面临以下问题: 父类的代码: 子类代码: 两者是分开的。java文件。当我尝试执行父类文件时,它可以工作,但由于某些原因,我甚至无法运行子类。这里有以下信息: 该文件于2月8日发布。java不是可执行的。请选择要运行的主类 我该如何解决这个问题?
我试图弄清楚Java中的继承和数组,并试图让这些类一起工作。我相信我已经继承下来了,但我仍在为数组部分而挣扎。 有三个文件: 1. Person.java-基类2. Student.java-派生的Person.java3. Family.java-不太确定,我认为这是它自己的基类 人java有两个实例变量,String name和int age,以及各种各样的构造函数toString、equal
我有一个父类和子类、和,它们描述了如何购买水果的不同类型。 在篮子里插入购买的特定水果; 计算购买水果的总价值; 计算用于给定类型水果(水果名称)的总金额 为了与其他项目的类兼容,在各个类中使用的执行要支付金额的计算的方法将具有名称payFruit,返回类型double并且没有参数。此方法必须在接口中声明。 注意:我知道这可能对我的情况很特殊,对其他人没有太大帮助,但我发现这个类层次结构在使用时有
问题内容: 这是一个面试问题。 子类是否继承私有字段? 我回答“否”,因为我们无法使用“常规OOP方式”访问它们。但是访问者认为它们是继承的,因为我们可以间接或使用反射来访问这些字段,并且它们仍然存在于对象中。 回来后,我在javadoc中找到了以下引号: 超类私人成员 子类不继承其父类的私有成员。 你知道面试官的观点有什么论据吗? 问题答案: 这里的问题/答案中的大多数困惑都围绕着继承的定义。