एक इन्टरफेस एक अनुबन्ध घोषणा गर्दछ — एक प्रकारले प्रदान गर्नुपर्ने विधिहरूको सेट — कोनै (वा न्यूनतम) कार्यान्वयनको साथ। एक अमूर्त क्लास आंशिक रूपमा कार्यान्वयन गरिएको क्लास हो जसले साझा अवस्था र ठोस विधिहरू राख्न सक्छ तर तत्काल गर्न सक्दैन। मुख्य भिन्नता: एक क्लासले धेरै इन्टरफेस कार्यान्वयन गर्न सक्छ तर केवल एक क्लासबाट इन्हेरिट गर्न सक्छ।
