Abstrakte klasser og grensesnitt Likheter: (1) kan arves (2) kan ikke instansieres (3) kan inneholde metodedeklarasjoner (4) Den avledede klassen må implementere den uimplementerte metoden Kategori: (1) Abstrakte baseklasser kan definere felt, egenskaper og metodeimplementasjoner. Grensesnitt kan kun definere attributter, indeksere, hendelser og metodedeklarasjoner, og kan ikke inneholde felt. (2) En abstrakt klasse er en ufullstendig klasse som trenger ytterligere forbedring, mens et grensesnitt er en atferdsnorm. Microsofts tilpassede grensesnitt kommer alltid med et kapabelt felt som beviser at de er uttrykk for «Jeg kan gjøre det...» ” (3) Grensesnitt kan implementeres flere ganger, og abstrakte klasser kan kun arves av én person (4) Abstrakte klasser er mer definerte mellom en serie nært beslektede klasser, mens de fleste grensesnittene er løst beslektede klasser som alle implementerer en bestemt funksjon (5) Abstrakte klasser er begreper abstrahert fra en serie beslektede objekter, slik at de reflekterer tingenes indre fellesskap; Et grensesnitt er en funksjonell konvensjon definert for å tilfredsstille eksterne kall, så det reflekterer de ytre egenskapene til ting (6) Grensesnittet har i bunn og grunn ingen spesifikke arvelige egenskaper, det lover bare metoder som kan kalles (7) Grensesnitt kan brukes til å støtte tilbakeringinger, men arv har ikke denne funksjonen (8) De spesifikke metodene implementert av abstrakte klasser er virtuelle som standard, men grensesnittmetodene i klassen som implementerer grensesnittet er ikke-virtuelle som standard, selvfølgelig kan du også erklære dem virtuelle (9) Hvis en abstrakt klasse implementerer et grensesnitt, kan metoden i grensesnittet mappes til den abstrakte klassen som en abstrakt metode uten å måtte implementere den, og metoden i grensesnittet kan implementeres i en underklasse av den abstrakte klassen
|