در تئوری زبان‌های برنامه نویسی ، **چندریختی زیرنوعی** نوعی از پلی مورفیسم نوع است که در آن یک نوع داده ای به نام **زیرنوع** با داده دیگری ( **ابرنوع** ) می‌تواند جایگزین شود ، به این معنا که عناصر برنامه ، معمولاً زیرروال‌ها یا توابع ، که روی عناصر از جنس ابرنوع عمل می‌کنند،می‌توانند بر روی عناصر زیرنوع نیز عمل کنند.. اگر S زیرنوع T باشد ، رابطه زیرنوعی غالباً با S <: T نمایش داده می‌شود ، بدین معنی که هر جمله از نوع S را می توان با خیال راحت در محلی *که* یک جمله از نوع T مورد پذیرش است استفاده کرد. معنای دقیق چندریختی زیرنوعی شدیداً به جزئیات معنای "میتوان در محلی که مورد پذیرش است استفاده کرد" در زبان برنامه نویسی مورد نظر بستگی دارد. سیستم انواع در هر زبان برنامه نویسی اساساً رابطه زیرنوعی خود را تعریف می کند،که در صورت عدم پشتیبانی زبان از مکانیسم های تبدیل ممکن است بدیهی باشد.

به دلیل رابطه زیرنوعی، یک جمله ممکن است متعلق به بیش از یک نوع باشد. بنابراین زیرنوعی، نوعی چندریختی نوع است. در برنامه نویسی شی گرا ، اصطلاح چندریختی معمولاً برای اشاره به چندریختی *زیرنوعی* استفاده می‌شود، در حالی که تکنیک های چندریختی پارامتری به عنوان *برنامه نویسی جنریک* در نظر گرفته می شوند. 

در زبان‌های برنامه نویسی تابعی غالباً امکان استفاده از زیرنوع وجود دارد. در نتیجه ، جبر لاندای ساده-نوعی با اضافه کردن نوع رکورد شاید ساده‌ترین نظام نظری است که در آن مفاهیم مفیدی از زیرنوع را می‌توان تعریف و مطالعه کرد. از آنجا که در جبر حاصل ممکن است جملات بیش از یک نوع داشته‌باشند، جبر حاصل دیگر یک نظریه نوع "ساده" نیست. از آنجا که زبانهای برنامه نویسی تابعی ، به طور تعریف ، از توابع معنایی پشتیبانی می‌کنند، که می‌توانند در رکوردها نیز ذخیره شوند ، نوع رکوردها واستفاده از زیرنوعی می‌تواند برخی از ویژگی های برنامه نویسی شی گرا را میسر کند. به طور معمول ، زبانهای برنامه نویسی تابعی برخی از شکل های هرچند معمولاً محدود چندریختی پارامتری را نیز ارائه می دهند. به طور نظری ،بررسی تعامل این دو ویژگی مورد توجه است. یک نظام نظری معمول سیستم F <sub id="mwIg">&lt;:</sub> است. حساب های منطقی مختلفی که سعی در جذب ویژگی های نظری برنامه نویسی شی گرا دارند می‌توانند از سیستم F < :استخراج شوند. 

| * ن
* ب
* و
انواع داده |
| --- |
| یکاهای اطلاعات | 
* بیت (رایانه)
* بایت
* Trit
* Tryte
* Word
* آرایه بیتی

 |
| عددی | 
* Arbitrary-precision or bignum
* Complex
* Decimal
* Fixed point
* ممیز شناور
	+ Double-precision floating-point format
	+ Extended precision
	+ Long double
	+ Octuple precision
	+ Quadruple precision
	+ فرمت ممیز شناور با دقت یگانه
	+ Reduced precision
		- Minifloat
		- Half precision
		- bfloat16
* متغیرهای رشته‌ای کوتاه
	+ signedness
* Interval
* Rational

 |
| اشاره‌گر | 
* آدرس حافظه
	+ آدرس فیزیکی
	+ virtual
* مرجع (علوم رایانه)

 |
| نوشته ساده | 
* نویسه (رایانه)
* رشته (علوم رایانه)
	+ null-terminated

 |
| Composite | 
* Algebraic data type
	+ generalized
* نوع داده آرایه
* آرایه انجمنی
* کلاس (برنامه‌نویسی)
* Dependent
* Equality
* Inductive
* لیست (نوع داده انتزاعی)
* شیء (علوم رایانه)
	+ metaobject
* Option type
* Product
* رکورد یا ساختار (علم کامپیوتر)
* Refinement
* Set
* Union
	+ tagged

 |
| دیگر | 
* نوع داده بولی
* Bottom type
* ظرف (نوع داده انتزاعی)
* Enumerated type
* مدیریت استثناء
* Function type
* Opaque data type
* Recursive data type
* سمافور
* جریان (رایانش)
* Top type
* Type class
* Unit type
* نوع void

 |
| موضوعاتمرتبط | 
* نوع داده انتزاعی
* ساختمان داده‌ها
* برنامه‌نویسی جنریک
* Kind
	+ metaclass
* چندریختی پارامتری
* Primitive data type
* Protocol
	+ رابط (رایانش)
* چند ریختی زیرنوعی (برنامه نویسی کامپیوتر)
* Type constructor
* Type conversion
* سیستم انواع
* نظریه نوع‌ها

 |
| See also الگو:یکاهای اطلاعات |



1. ↑  Copestake, Ann. Implementing typed feature structure grammars. Vol. 110. Stanford: CSLI publications, 2002.
2. ↑  Cardelli, Luca. A semantics of multiple inheritance. In G. Kahn, D. MacQueen, and G. Plotkin, editors, Semantics of Data Types, volume 173 of Lecture Notes in Computer Science, pages 51–67. Springer-Verlag, 1984. Full version in Information and Computation, 76(2/3):138–164, 1988.