Sažetak razreda prema sučelju
Sažetak klase (ili tipa) je vrsta u sustavu nominativnog tipa koji je proglasio program. Iako naziv podrazumijeva takvo, apstraktna klasa može ili ne mora sadržavati apstraktne metode ili svojstva. Razlika razlike odnosi se na različite jezične konstrukcije koje se mogu koristiti za primjenu apstraktnih tipova. Sažetak nastave može se okarakterizirati dizajnerskim problemom koji je u skladu s najboljim objektno orijentiranim programiranjem i njihovom nedovršenom prirodom.
Sučelje je apstraktnog tipa koji klasa mora implementirati da bi odredila sučelje (općenito gledano). Sučelja mogu sadržavati samo potpise metoda i konstantne deklaracije (statičke i završne), nikada definicije metoda. Sučelja simuliraju više nasljeđivanja i koriste se za kodiranje sličnosti koje se dijele između različitih vrsta klasa.
Apstraktne vrste mogu se stvoriti, označiti ili simulirati na nekoliko različitih načina. Programer može označiti apstraktne tipove izričito koristeći ključnu riječ sažetak, uključivanjem jedne ili više metoda u definiciji klase, nasljeđujući od drugog apstraktnog tipa bez poništavanja nedostajućih značajki potrebnih za dovršavanje definicije klase ili slanjem određene metode objektno orijentiranom programski jezik poznat kao ovaj koji metodu ne implementira izravno.
Sučelja se mogu definirati apstraktnim metodama. Klase se također mogu implementirati u sučeljima. Ako klasa provodi sučelje i ne provodi sve svoje metode, mora se upotrijebiti sažetak označitelja, inače taj označitelj nije potreban (jer su sva sučelja svojstveno apstraktna). Klase također mogu implementirati više sučelja.
Dok se sučelja koriste za određivanje generičkih sučelja, apstraktni se tipovi mogu koristiti za definiranje i provođenje protokola (što je skup operacija koji moraju podržavati svi objekti koji implementiraju željeni protokol). Sažeci se ne javljaju u jezicima bez podvrstavanja. Kao takvi podtipovi primorani su implementirati svu potrebnu funkcionalnost, osiguravajući ispravnost izvršavanja programa. Postoji nekoliko načina na koje se mogu stvoriti apstraktni tipovi: pune apstraktne osnovne klase su klase koje su ili izričito proglašene apstraktnim ili sadrže apstraktne (neimenzionirane) metode; Uobičajeni Lisp-ov objektni sustavi uključuju kombinacije koje se temelje na sustavu okusa; Java, naravno; i Svojstva, koji djeluje kao produžetak Smalltalk-a.
Sažetak:
1. Sažeci (ili vrste) deklariraju programe; sučelja su apstraktni tipovi koje sve klase moraju implementirati da bi odredile svoje sučelje.
2. Sažetak vrsta može se označiti korištenjem ključne riječi izričito; sučelja su sama po sebi apstraktna, pa ih uopće ne treba označavati pomoću ključne riječi (osim ako određena klasa implementira sučelje, ali ne implementira sve svoje metode).