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

Სარჩევი:

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

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

ვიდეო: სხვაობა აბსტრაქტულ კლასსა და მემკვიდრეობას შორის
ვიდეო: Proxy vs VPN vs DNS 2024, ივლისი
Anonim

აბსტრაქტული კლასი vs მემკვიდრეობა

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

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

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

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

რა არის მემკვიდრეობა?

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

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

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

დაკავშირებული პოსტები:

Image
Image
Image
Image

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

Image
Image
Image
Image

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

Image
Image
Image
Image

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

Image
Image
Image
Image

სხვაობა დანერგვასა და გაფართოებას შორის

Image
Image
Image
Image

სხვაობა გრაფიკსა და ხეს შორის

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

გამოსახულება
გამოსახულება

ავტორის შესახებ: Indika

ინდიკა, BSc. Eng, MSECE კომპიუტერული ინჟინერია, დოქტორი. კომპიუტერული მეცნიერება, არის ასისტენტ-პროფესორი და აქვს კვლევითი ინტერესები ბიოინფორმატიკის, გამოთვლითი ბიოლოგიის და ბიოსამედიცინო ბუნებრივი ენის დამუშავების სფეროებში.

კომენტარები

  1. გამოსახულება
    გამოსახულება

    ჯეისონი ამბობს

    2017 წლის 30 აგვისტო, 1:25 pm

    გმადლობთ განსხვავებას ახსნისთვის. ჩემი ყველა კითხვა ამით მოგვარდა.

    პასუხი

  2. გამოსახულება
    გამოსახულება

    Aus ამბობს

    10 მაისი, 2019, 15:04 საათზე

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

    პასუხი

პასუხის დატოვება პასუხის გაუქმება

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

კომენტარი

სახელი

ელფოსტა

ვებგვერდი

მოითხოვეთ სტატია
მოითხოვეთ სტატია
მოითხოვეთ სტატია
მოითხოვეთ სტატია

გამორჩეული პოსტები

განსხვავება კორონავირუსსა და გაციების სიმპტომებს შორის
განსხვავება კორონავირუსსა და გაციების სიმპტომებს შორის

სხვაობა კორონავირუსსა და გაციების სიმპტომებს შორის

განსხვავება კორონავირუსსა და SARS-ს შორის
განსხვავება კორონავირუსსა და SARS-ს შორის

სხვაობა კორონავირუსსა და SARS-ს შორის

სხვაობა კორონავირუსსა და გრიპს შორის
სხვაობა კორონავირუსსა და გრიპს შორის

სხვაობა კორონავირუსსა და გრიპს შორის

განსხვავება კორონავირუსსა და კოვიდ 19-ს შორის
განსხვავება კორონავირუსსა და კოვიდ 19-ს შორის

სხვაობა კორონავირუსსა და კოვიდ 19-ს შორის

შეიძლება მოგეწონოთ

სხვაობა ციმბირულ ჰასკისა და მალამუტს შორის

სხვაობა Calculus AB-სა და BC-ს შორის

სხვაობა ორმაგი მაიორსა და ორმაგ ხარისხს შორის

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

-ს შორის

გირჩევთ: