{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:27:33Z","timestamp":1750307253378,"version":"3.41.0"},"reference-count":12,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2011,6,1]],"date-time":"2011-06-01T00:00:00Z","timestamp":1306886400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Inroads"],"published-print":{"date-parts":[[2011,6]]},"abstract":"<jats:p>Meaningful applications of inheritance are critical in devising good object-oriented solutions. Yet, not being able to use effectively and correctly inheritance in problem solving is perhaps the most significant impediment for students to become competitive object-oriented thinkers. This article provides a summary of common uses of type inheritance. It also describes the situations where type inheritance can be inappropriate or, at least, subject to reevaluation. More importantly, it brings an attention to the distinction between the mechanics and the semantics of inheritance. The article closes with an example that illustrates the use of inheritance in light of other alternatives. Finally, the article briefly discusses the implications.<\/jats:p>","DOI":"10.1145\/1963533.1963550","type":"journal-article","created":{"date-parts":[[2012,10,15]],"date-time":"2012-10-15T19:22:23Z","timestamp":1350328943000},"page":"52-58","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["When to inherit a type"],"prefix":"10.1145","volume":"2","author":[{"given":"Chenglie","family":"Hu","sequence":"first","affiliation":[{"name":"Carroll University, Waukesha, Wisconsin"}]}],"member":"320","published-online":{"date-parts":[[2011,6]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/352183.352209"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/611892.611986"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.5555\/786775.787211"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.5555\/525583.853476"},{"key":"e_1_2_1_5_1","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"Gamma E.","year":"1994","unstructured":"Gamma , E. , Helm , R. , Johnson , R. and Vlissides , J. , Design Patterns: Elements of Reusable Object-Oriented Software , Addison-Wesley , Boston, MA , 1994 . Gamma, E., Helm, R., Johnson, R. and Vlissides, J., Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, Boston, MA, 1994."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1138403.1138440"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/62139.62141"},{"key":"e_1_2_1_8_1","volume-title":"J., Program Development in Java","author":"Liskov B.","year":"2001","unstructured":"Liskov , B. with Guttage , J., Program Development in Java , Addison Wesley , Boston, MA , 2001 . Liskov, B. with Guttage, J., Program Development in Java, Addison Wesley, Boston, MA, 2001."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/1953163.1953199"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.161279"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.5555\/261119"},{"key":"e_1_2_1_12_1","volume-title":"Object-Oriented Programming in Java","author":"Sanders K","year":"2006","unstructured":"Sanders K , and Dam , A. , Object-Oriented Programming in Java , Addison Wesley , Boston, MA , 2006 . Sanders K, and Dam, A., Object-Oriented Programming in Java, Addison Wesley, Boston, MA, 2006."}],"container-title":["ACM Inroads"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1963533.1963550","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1963533.1963550","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T10:52:19Z","timestamp":1750243939000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1963533.1963550"}},"subtitle":["what we do know and what we might not"],"short-title":[],"issued":{"date-parts":[[2011,6]]},"references-count":12,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2011,6]]}},"alternative-id":["10.1145\/1963533.1963550"],"URL":"https:\/\/doi.org\/10.1145\/1963533.1963550","relation":{},"ISSN":["2153-2184","2153-2192"],"issn-type":[{"type":"print","value":"2153-2184"},{"type":"electronic","value":"2153-2192"}],"subject":[],"published":{"date-parts":[[2011,6]]},"assertion":[{"value":"2011-06-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}