这是使用抽象 类 和抽象方法在 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