Sobes.tech
Junior — Middle

ობიექტზე ორიენტირებულ პროგრამირებაში აბსტრაქტული კლასი და ინტერფეისი შორის რა განსხვავებებია?

sobes.tech AI

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

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

  • აბსტრაქტული კლასი შეიძლება შეიცავდეს როგორც აბსტრაქტულ (არ აქვს განხორციელება), ასევე კონკრეტულ მეთოდებს. მას შეუძლია ჰქონდეს მდგომარეობა (მინდვრები). კლასები იშლება აბსტრაქტულ კლასზე და შეუძლია გადახედოს მეთოდებს.

  • ინტერფეისი აღწერს მხოლოდ მეთოდების ნაკრებს, რომლებიც არ აქვს განხორციელება, და არ შეიცავს მდგომარეობას. კლასი, რომელიც ახორციელებს ინტერფეისს, უნდა განახორციელოს მისი ყველა მეთოდი.

მაგალითები განსხვავებების:

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

მაგალითად, ინტერფეისი Flyable შეიძლება აღწეროს მეთოდი fly(), ხოლო აბსტრაქტული კლასი Bird შეიძლება შეიცავდეს ველს wingSpan და მეთოდს sing() მისი განხორციელებით.