An interface is basically a class with no implementation that is intended to be subclassed so that a related set of classes all share a common set of methods. This lets you program parts of your code in a way where you don't have to worry about which of the subclasses you're working with, and anyone else using your code can implement their own subclass from that Interface that should work. 

Using the common programming textbook example of classes representing different kinds of vehicles, we could imagine that we're creating a video game where you have different kinds of vehicles you can drive and pressing a button causes the vehicle to accelerate. So we want to make a Vehicle interface that defines an accelerate method, but there's no generic implementation for accelerate, since each vehicle accelerates differently. So then we'd subclass the Vehicle interface in a Car class, a Train class, an Airplane class, etc., and each would implement the accelerate function in the way that specific vehicle should accelerate.

Edit: In Java there's a specific keyword for defining an Interface, but any object-oriented language should support this type of design. Your interface would just be another Class that either doesn't implement the functions defined, if the language allows that, or implements dummy or placeholder functions that would be replaced by a subclass.
අතුරු මුහුණතක් යනු මූලික වශයෙන් ක්‍රියාත්මක කිරීමක් නොමැති පන්තියක් වන අතර එය උප වර්ගීකරණය කිරීමට අදහස් කර ඇති අතර එමඟින් අදාළ පන්ති සමූහයක් පොදු ක්‍රම සමූහයක් බෙදා ගනී. මෙය ඔබට ඔබගේ කේතයේ කොටස් ඔබ වැඩ කරන්නේ කුමන උපපංතිය සමඟද යන්න ගැන කරදර විය යුතු නැති ආකාරයට ක්‍රමලේඛනය කිරීමට ඉඩ සලසයි, සහ ඔබේ කේතය භාවිතා කරන ඕනෑම කෙනෙකුට එම අතුරු මුහුණතෙන් ක්‍රියා කළ යුතු තමන්ගේම උප පංතියක් ක්‍රියාත්මක කළ හැක. විවිධ වර්ගයේ වාහන නියෝජනය කරන පන්තිවල පොදු ක්‍රමලේඛන පෙළපොත් උදාහරණය භාවිතා කරමින්, අපි ඔබට ධාවනය කළ හැකි විවිධ වර්ගයේ වාහන ඇති වීඩියෝ ක්‍රීඩාවක් නිර්මාණය කරන අතර බොත්තමක් එබීමෙන් වාහනය වේගවත් වන බව අපට සිතාගත හැකිය. එබැවින් අපට වේගවත් ක්‍රමයක් නිර්වචනය කරන වාහන අතුරුමුහුණතක් සෑදීමට අවශ්‍ය වේ, නමුත් එක් එක් වාහනය වෙනස් ලෙස වේගවත් වන බැවින් වේගවත් කිරීම සඳහා සාමාන්‍ය ක්‍රියාත්මක කිරීමක් නොමැත. එබැවින් අපි වාහන අතුරුමුහුණත මෝටර් රථ පන්තියක්, දුම්රිය පන්තියක්, ගුවන් යානා පන්තියක් යනාදී වශයෙන් උප වර්ගීකරණය කරමු, සහ එක් එක් විශේෂිත වාහනය වේගවත් කළ යුතු ආකාරයට ත්වරණය කිරීමේ කාර්යය ක්‍රියාත්මක කරනු ඇත. සංස්කරණය කරන්න: ජාවා හි අතුරු මුහුණතක් නිර්වචනය කිරීම සඳහා නිශ්චිත මූල පදයක් ඇත, නමුත් ඕනෑම වස්තු-නැඹුරු භාෂාවක් මෙම ආකාරයේ නිර්මාණය සඳහා සහාය විය යුතුය. ඔබේ අතුරුමුහුණත යනු භාෂාව විසින් එයට ඉඩ දෙන්නේ නම්, හෝ උපපංතියකින් ප්‍රතිස්ථාපනය කෙරෙන ව්‍යාජ හෝ ස්ථාන දරන්නා ශ්‍රිත ක්‍රියාත්මක කරන්නේ නම්, එක්කෝ අර්ථ දක්වා ඇති කාර්යයන් ක්‍රියාත්මක නොකරන තවත් පන්තියක් වනු ඇත.