Quick actions

cmd+k|ctrl+k

Navigation

Languages

Use of Abstract classes

Snippet info

Language

Java

Visibility

public

Author

fcb.satadrud10s

Created

2023-09-03T14:48:49.404578Z

Updated

2023-09-03T14:48:49.404578Z

abstract class Animal {
    private String scientificName;
    private String countryOfOrigin;

    // Constructors
    public Animal(String scientificName, String countryOfOrigin) {
        this.scientificName = scientificName;
        this.countryOfOrigin = countryOfOrigin;
    }

    // Getter methods
    public String getScientificName() {
        return scientificName;
    }

    public String getCountryOfOrigin() {
        return countryOfOrigin;
    }

    // Setter methods
    public void setScientificName(String scientificName) {
        this.scientificName = scientificName;
    }

    public void setCountryOfOrigin(String countryOfOrigin) {
        this.countryOfOrigin = countryOfOrigin;
    }

    // Abstract behavior method
    abstract void behavior();
}

abstract class Human extends Animal {
    private String ethnicity;

    public Human(String ethnicity, String countryOfOrigin) {
        super("Homo Sapiens", countryOfOrigin);
        this.ethnicity = ethnicity;
    }

    // Getter and Setter for ethnicity
    public String getEthnicity() {
        return ethnicity;
    }

    public void setEthnicity(String ethnicity) {
        this.ethnicity = ethnicity;
    }

    @Override
    void behavior() {
        System.out.println("Bipedal walking, advanced cognitive abilities, etc.");
    }

    abstract void culturalPractice();
}

class Asian extends Human {
    public Asian(String ethnicity, String countryOfOrigin) {
        super(ethnicity, countryOfOrigin);
    }

    @Override
    void culturalPractice() {
        System.out.println("Has cultural practices specific to Asia.");
    }
}

class European extends Human {
    public European(String ethnicity, String countryOfOrigin) {
        super(ethnicity, countryOfOrigin);
    }

    @Override
    void culturalPractice() {
        System.out.println("Has cultural practices specific to Europe.");
    }
}

public class Main {
    public static void main(String[] args) {
        Asian asianPerson = new Asian("East Asian", "China");
        System.out.println("Scientific Name: " + asianPerson.getScientificName());
        System.out.println("Ethnicity: " + asianPerson.getEthnicity());
        System.out.println("Country of Origin: " + asianPerson.getCountryOfOrigin());
        asianPerson.behavior();
        asianPerson.culturalPractice();

        System.out.println();

        European europeanPerson = new European("Nordic", "Sweden");
        System.out.println("Scientific Name: " + europeanPerson.getScientificName());
        System.out.println("Ethnicity: " + europeanPerson.getEthnicity());
        System.out.println("Country of Origin: " + europeanPerson.getCountryOfOrigin());
        europeanPerson.behavior();
        europeanPerson.culturalPractice();
    }
}
INFO