这是使用抽象 类 和抽象方法在 java 中实现抽象的有效代码吗
Is this a valid code for achieving abstraction in java using abstract classes and abstract methods
这是实现抽象的正确方法吗?正如摘要中的这个 class
public abstract class Employee {
private String name, address;
int basicSalary;
public String getName(){
return name;
}
public String getAddress(){
return address;
}
public int getbasicSalary(){
return basicSalary;
}
public void setName(String name){
this.name= name;
}
public void setAddress(String address){
this.address= address;
}
public void setBasicSalary(int basicSalary){
this.basicSalary= basicSalary;
}
public abstract int getMonthlySalary();
}
这个class扩展了抽象员工class
class NormalEmployee extends Employee {
public NormalEmployee() {
// TODO Auto-generated constructor stub
}
public void setBasicSalary(int basicSalary) {
this.basicSalary=basicSalary;
};
// Method override for salarycalculation
@Override
public int getMonthlySalary() {
// TODO Auto-generated method stub
int monthlySalaryOfNormalEmployee= 1200;
System.out.println("Normal Employee Salary: "+monthlySalaryOfNormalEmployee);
return monthlySalaryOfNormalEmployee;
}
}
public class BonusEmployee extends NormalEmployee {
int bonusAmount;
这个class扩展了普通员工class,它已经继承了员工class
的方法
public BonusEmployee() {
// TODO Auto-generated constructor stub
}
public int getBonus(){
return bonusAmount;
}
public static void main(String[] args) {
// Creating objects and calling methods
BonusEmployee bE= new BonusEmployee();
NormalEmployee nE= new NormalEmployee();
bE.setBonus(1200);
bE.setBasicSalary(1500);
bE.getMonthlySalary();
nE.getMonthlySalary();
}
public void setBonus(int bonusAmount){
this.bonusAmount=bonusAmount;
}
@Override
public int getMonthlySalary() {
int getMonthlySalary= basicSalary + getBonus();
System.out.println("Bonus Employee Salary: "+getMonthlySalary);
return basicSalary;
}
}
因为它给了我预期的结果所以不知道实施是否正确!
任何编程语言中的抽象更多是一种概念或方法,用于将现实世界的各个方面建模为软件。抽象是采用本质上复杂的事物,并以易于理解或使用的方式在软件中表示它,但仍然建模或保留现实世界中概念的基本元素。
写一些代码然后询问 'have I achieved abstraction' 将取决于您试图用代码表示的是什么。
这篇文章对软件开发中的抽象有一个很好的定义:https://en.wikipedia.org/wiki/Abstraction#In_computer_science
这是实现抽象的正确方法吗?正如摘要中的这个 class
public abstract class Employee {
private String name, address;
int basicSalary;
public String getName(){
return name;
}
public String getAddress(){
return address;
}
public int getbasicSalary(){
return basicSalary;
}
public void setName(String name){
this.name= name;
}
public void setAddress(String address){
this.address= address;
}
public void setBasicSalary(int basicSalary){
this.basicSalary= basicSalary;
}
public abstract int getMonthlySalary();
}
这个class扩展了抽象员工class
class NormalEmployee extends Employee {
public NormalEmployee() {
// TODO Auto-generated constructor stub
}
public void setBasicSalary(int basicSalary) {
this.basicSalary=basicSalary;
};
// Method override for salarycalculation
@Override
public int getMonthlySalary() {
// TODO Auto-generated method stub
int monthlySalaryOfNormalEmployee= 1200;
System.out.println("Normal Employee Salary: "+monthlySalaryOfNormalEmployee);
return monthlySalaryOfNormalEmployee;
}
}
public class BonusEmployee extends NormalEmployee {
int bonusAmount;
这个class扩展了普通员工class,它已经继承了员工class
的方法 public BonusEmployee() {
// TODO Auto-generated constructor stub
}
public int getBonus(){
return bonusAmount;
}
public static void main(String[] args) {
// Creating objects and calling methods
BonusEmployee bE= new BonusEmployee();
NormalEmployee nE= new NormalEmployee();
bE.setBonus(1200);
bE.setBasicSalary(1500);
bE.getMonthlySalary();
nE.getMonthlySalary();
}
public void setBonus(int bonusAmount){
this.bonusAmount=bonusAmount;
}
@Override
public int getMonthlySalary() {
int getMonthlySalary= basicSalary + getBonus();
System.out.println("Bonus Employee Salary: "+getMonthlySalary);
return basicSalary;
}
}
因为它给了我预期的结果所以不知道实施是否正确!
任何编程语言中的抽象更多是一种概念或方法,用于将现实世界的各个方面建模为软件。抽象是采用本质上复杂的事物,并以易于理解或使用的方式在软件中表示它,但仍然建模或保留现实世界中概念的基本元素。
写一些代码然后询问 'have I achieved abstraction' 将取决于您试图用代码表示的是什么。
这篇文章对软件开发中的抽象有一个很好的定义:https://en.wikipedia.org/wiki/Abstraction#In_computer_science