Java/კლასის შთამომავლობა

ვიკიწიგნებიდან

ჩვენს ზოოპარკში ძალიან ბევრი სახის ცხოველია. ჩვენ გვინდა მათი დაყოფა. რადგან ზოოლოგიის არაფერი გაგვეგება და ცხოველების ბილოგიურ კლასების შესახებ მხოლოდ ბუნდოვანი წარმოდგენა გვაქვს ჩვენ დავყოფთ ცხოველებს ორ კატეგორიად:

  • ფრინველები, რომელთაც ვახასიათებთ ბუმბულების რაოდენობით
  • ძუძუმწოვრები, რომლებსაც ვახასიათებთ სხეულის ნორმალური ტემპერატურით

მიუხედავად იმისა, რომ ორი სხვადასხვა სახეობაა, ჩვენ მასში მსგავსებასაც ვხედავთ. კერძოდ კი ყველას, გააჩნია სახელი. მსგავსი კლასი უკვე განსაზღვრული გვქვს. ამიტომ ახლა ორივე ზემოჩამოთვლის სახეობას აღვწერთ როგორც Animal-ის შთამომავლებს.

ფრინველები:

package zoo;

public class Bird extends Animal {
    private int featherCount;

    public Bird(String name) {
       super(name);
    }

    public int getFeatherCount() {
        return featherCount;
    }

    public void setFeatherCount(int featherCount) {
        this.featherCount = featherCount;
    }
}

ძუძუმწოვრები:

package zoo;

public class Mammal extends Animal {
    private float normalTemperature;

    public Mammal(String name) {
       super(name);
    }

    public float getNormalTemperature() {
        return normalTemperature;
    }

    public void setNormalTemperature(int normalTemperature) {
        this.normalTemperature = normalTemperature;
    }
}

ახლა შეგვიძლია ძირითადი მეთოდის გადაწერა:

package zoo;
 
public class Main {
 
    public static void main(String[] args) {
        Animal animal1 = new Bird("ინდაური");
        Animal animal2 = new Mammal("ძაღლი");
        Bird animal3 = new Bird("გედი");
        animal3.setFeatherCount(100000);
        System.out.println(animal1);
    }

}