სხვაობა აბსტრაქტულ კლასსა და კონკრეტულ კლასს შორის

სხვაობა აბსტრაქტულ კლასსა და კონკრეტულ კლასს შორის
სხვაობა აბსტრაქტულ კლასსა და კონკრეტულ კლასს შორის

ვიდეო: სხვაობა აბსტრაქტულ კლასსა და კონკრეტულ კლასს შორის

ვიდეო: სხვაობა აბსტრაქტულ კლასსა და კონკრეტულ კლასს შორის
ვიდეო: Abstract Classes and Methods in Java Explained in 7 Minutes 2024, ნოემბერი
Anonim

აბსტრაქტული კლასი vs ბეტონის კლასი

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

რა არის ბეტონის კლასი?

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

რა არის აბსტრაქტული კლასი?

აბსტრაქტული კლასები გამოცხადებულია Abstract საკვანძო სიტყვის გამოყენებით (მაგ. Java,). როგორც წესი, აბსტრაქტული კლასები, რომლებიც ასევე ცნობილია, როგორც აბსტრაქტული საბაზისო კლასები (ABC), არ შეიძლება განხორციელდეს (ამ კლასის ეგზემპლარის შექმნა შეუძლებელია). ასე რომ, აბსტრაქტული კლასების არსებობა მხოლოდ მაშინ არის მნიშვნელოვანი, თუ პროგრამირების ენა მხარს უჭერს მემკვიდრეობას (კლასის გაფართოებისგან ქვეკლასების შექმნის შესაძლებლობა). აბსტრაქტული კლასები, როგორც წესი, წარმოადგენენ აბსტრაქტულ კონცეფციას ან ერთეულს ნაწილობრივი ან არ განხორციელებით. მაშასადამე, აბსტრაქტული კლასები მოქმედებენ როგორც მშობელი კლასები, საიდანაც წარმოიქმნება ბავშვის კლასები ისე, რომ ბავშვის კლასი იზიარებს მშობლის კლასის არასრულ მახასიათებლებს და შეიძლება დაემატოს ფუნქციები მათ დასასრულებლად.

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

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

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

გირჩევთ: