Sobes.tech
Junior

როგორ იყენებს მემკვიდრეობითი კლასი მშობლის კლასი ფუნქციონალობას?

sobes.tech AI

პასუხი AI-სგან

მემკვიდრეობითობა: მემკვიდრეობითი კლასი იღებს მშობლის კლასის საჯარო და დაცულ წევრებს.

  • მხოლოდ პირდაპირი წვდომა: მშობლის კლასის საჯარო და დაცული ველები და მეთოდები შეიძლება პირდაპირ მიემართოს მათი სახელით მემკვიდრეობით კლასში.
  • super საკვანძო სიტყვა: გამოიყენება მშობლის კონსტრუქტორის გამოძახებისთვის ან მშობლის გადაწერილი მეთოდების/ველების მისაღებად, როდესაც მემკვიდრეობით კლასში იგივე სახელის წევრები არსებობს.
  • გადაწერა (overriding): მშობლის მეთოდები (final არ არის) შეიძლება გადაწერილ იქნას მემკვიდრეობით კლასში, მათი ქცევის შეცვლის მიზნით.
// მშობლის კლასის მაგალითი
class Parent {
    protected int parentValue;

    public Parent(int value) {
        this.parentValue = value;
    }

    public void displayParentValue() {
        System.out.println("მშობლის მნიშვნელობა: " + parentValue);
    }

    public final void cannotBeOverridden() {
        System.out.println("ეს მეთოდი ვერ იქნება გადაწერილი.");
    }
}

// მემკვიდრეობის კლასის მაგალითი
class Child extends Parent {
    private int childValue;

    public Child(int parentValue, int childValue) {
        super(parentValue); // მშობლის კონსტრუქტორის გამოძახება
        this.childValue = childValue;
    }

    // მშობლის მეთოდის გადაწერა
    @Override
    public void displayParentValue() {
        System.out.println("გადაწერილი მშობლის მნიშვნელობა: " + parentValue); // დაცული ველის წვდომა
    }

    public void displayChildValue() {
        System.out.println("შვილის მნიშვნელობა: " + childValue);
    }

    public void callParentMethod() {
        super.displayParentValue(); // მშობლის მეთოდის გამოძახება super-ის საშუალებით
    }
}