Это допустимый код для достижения абстракции в Ja va с использованием абстрактных классов и абстрактных методов

Это правильный метод для достижения абстракции? Как это в абстрактном классе

       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 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;

Этот класс расширяет обычный класс сотрудников, который уже наследует методы от класса сотрудников

            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;
    }

        }

Так как он дает мне ожидаемые результаты, так что не знаю, правильная реализация или нет!

1 ответ

Решение

Абстракция на любом языке программирования - это скорее концепция или подход для моделирования аспектов реального мира как программного обеспечения. Абстракция представляет собой нечто сложное по своей природе и представляет его в программном обеспечении таким образом, который легко понять или использовать, но все же моделирует или сохраняет основные элементы концепции в реальном мире.

Чтобы написать некоторый код и затем спросить "достиг ли я абстракции", будет зависеть то, что вы пытаетесь представить в коде.

В этой статье есть хорошее определение абстракции в разработке программного обеспечения: https://en.wikipedia.org/wiki/Abstraction

Другие вопросы по тегам