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

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

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

ვიდეო: სხვაობა განხორციელებასა და გაფართოებას შორის
ვიდეო: What is a conference? 2024, ნოემბერი
Anonim

Implements vs Extends

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

გაგრძელება

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

ინერგება

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

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

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

გირჩევთ: