{"id":"https://openalex.org/W2116882503","doi":null,"title":"Implementing Traits in Java","display_name":"Implementing Traits in Java","publication_year":2004,"publication_date":"2004-01-01","ids":{"openalex":"https://openalex.org/W2116882503","mag":"2116882503"},"language":"en","primary_location":{"id":"mag:2116882503","doi":null,"is_oa":false,"landing_page_url":"https://www.bartgroot.nl/scriptie.pdf","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":null},"volume":null,"type":"article","is_traditional":true,"indexed_in":[],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":null,"display_name":"B. de Groot","orcid":null,"observed_orcids":[]},"institutions":[{"id":"https://openalex.org/I193662353","display_name":"Utrecht University","ror":"https://ror.org/04pp8hn57","country_code":"NL","type":"education","lineage":["https://openalex.org/I193662353"]}],"countries":["NL"],"is_corresponding":true,"raw_author_name":"B. de Groot","raw_affiliation_strings":["Utrecht university >  >  >  >"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Utrecht university >  >  >  >","institution_ids":["https://openalex.org/I193662353"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I193662353"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":{"value":0.0,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9628999829292297,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9628999829292297,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.030400000512599945,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.00279999990016222,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/traits","display_name":"traits","score":0.9259999990463257},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.6010000109672546},{"id":"https://openalex.org/keywords/multiple-inheritance","display_name":"multiple inheritance","score":0.8519999980926514},{"id":"https://openalex.org/keywords/mixins","display_name":"mixins","score":0.5580000281333923},{"id":"https://openalex.org/keywords/delegation","display_name":"delegation","score":0.7680000066757202},{"id":"https://openalex.org/keywords/interfaces","display_name":"interfaces","score":0.5180000066757202},{"id":"https://openalex.org/keywords/overriding","display_name":"overriding","score":0.3619999885559082},{"id":"https://openalex.org/keywords/code-reuse","display_name":"code reuse","score":0.7730000019073486},{"id":"https://openalex.org/keywords/inheritance-hierarchy","display_name":"class hierarchy","score":0.5090000033378601},{"id":"https://openalex.org/keywords/aliasing","display_name":"aliasing","score":0.453000009059906},{"id":"https://openalex.org/keywords/object-oriented-programming-languages","display_name":"object-oriented programming languages","score":0.5379999876022339},{"id":"https://openalex.org/keywords/language-design","display_name":"language design","score":0.43799999356269836}],"concepts":[{"id":"https://openalex.org/C86532276","wikidata":"https://www.wikidata.org/wiki/Q1184065","display_name":"Delegation","level":2,"score":0.7521375417709351},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7506775856018066},{"id":"https://openalex.org/C113843644","wikidata":"https://www.wikidata.org/wiki/Q901882","display_name":"Interface (matter)","level":4,"score":0.6921888589859009},{"id":"https://openalex.org/C2780902518","wikidata":"https://www.wikidata.org/wiki/Q6033780","display_name":"Inheritance (genetic algorithm)","level":3,"score":0.6531774401664734},{"id":"https://openalex.org/C206588197","wikidata":"https://www.wikidata.org/wiki/Q846574","display_name":"Reuse","level":2,"score":0.5827440619468689},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.5198647975921631},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5126899480819702},{"id":"https://openalex.org/C31170391","wikidata":"https://www.wikidata.org/wiki/Q188619","display_name":"Hierarchy","level":2,"score":0.5037369132041931},{"id":"https://openalex.org/C2781289151","wikidata":"https://www.wikidata.org/wiki/Q2903989","display_name":"Class hierarchy","level":3,"score":0.45912444591522217},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.45006218552589417},{"id":"https://openalex.org/C2778583558","wikidata":"https://www.wikidata.org/wiki/Q771245","display_name":"Code reuse","level":3,"score":0.42639368772506714},{"id":"https://openalex.org/C73752529","wikidata":"https://www.wikidata.org/wiki/Q79872","display_name":"Object-oriented programming","level":2,"score":0.3703904151916504},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.18242284655570984},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.1684933304786682},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.15758562088012695},{"id":"https://openalex.org/C127413603","wikidata":"https://www.wikidata.org/wiki/Q11023","display_name":"Engineering","level":0,"score":0.10404855012893677},{"id":"https://openalex.org/C17744445","wikidata":"https://www.wikidata.org/wiki/Q36442","display_name":"Political science","level":0,"score":0.0},{"id":"https://openalex.org/C104317684","wikidata":"https://www.wikidata.org/wiki/Q7187","display_name":"Gene","level":2,"score":0.0},{"id":"https://openalex.org/C185592680","wikidata":"https://www.wikidata.org/wiki/Q2329","display_name":"Chemistry","level":0,"score":0.0},{"id":"https://openalex.org/C55493867","wikidata":"https://www.wikidata.org/wiki/Q7094","display_name":"Biochemistry","level":1,"score":0.0},{"id":"https://openalex.org/C548081761","wikidata":"https://www.wikidata.org/wiki/Q180388","display_name":"Waste management","level":1,"score":0.0},{"id":"https://openalex.org/C129307140","wikidata":"https://www.wikidata.org/wiki/Q6795880","display_name":"Maximum bubble pressure method","level":3,"score":0.0},{"id":"https://openalex.org/C34447519","wikidata":"https://www.wikidata.org/wiki/Q179522","display_name":"Market economy","level":1,"score":0.0},{"id":"https://openalex.org/C157915830","wikidata":"https://www.wikidata.org/wiki/Q2928001","display_name":"Bubble","level":2,"score":0.0},{"id":"https://openalex.org/C162324750","wikidata":"https://www.wikidata.org/wiki/Q8134","display_name":"Economics","level":0,"score":0.0},{"id":"https://openalex.org/C199539241","wikidata":"https://www.wikidata.org/wiki/Q7748","display_name":"Law","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"mag:2116882503","doi":null,"is_oa":false,"landing_page_url":"https://www.bartgroot.nl/scriptie.pdf","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":null}],"best_oa_location":null,"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":16,"referenced_works":["https://openalex.org/W1518512016","https://openalex.org/W1533109738","https://openalex.org/W1595410129","https://openalex.org/W1649645444","https://openalex.org/W1770006921","https://openalex.org/W1812582761","https://openalex.org/W1972418517","https://openalex.org/W2080648611","https://openalex.org/W2115680394","https://openalex.org/W2117174233","https://openalex.org/W2137417304","https://openalex.org/W2143238865","https://openalex.org/W2150601320","https://openalex.org/W2161825580","https://openalex.org/W2244800645","https://openalex.org/W2892705870"],"related_works":["https://openalex.org/W7097015052","https://openalex.org/W7098493495","https://openalex.org/W6902812768","https://openalex.org/W2244800645","https://openalex.org/W7097797067","https://openalex.org/W2481156022","https://openalex.org/W2892705870","https://openalex.org/W7095570528","https://openalex.org/W1993029567","https://openalex.org/W7099095792"],"abstract_inverted_index":{"interface":[0,26,60,146,193],"conformance":[1,27,194],".":[2,90,270,329],"Conformance":[3],"of":[4,24,38,68,108,165,279,307,320,352,371,457,512,587,606,615,632,640,671,691,694,726,754,766,830],"a":[5,8,32,79,103,237,304,331,361,376,385,446,468,524,550,569,588,604,619,626,655,681,695,722,735,852,876,895],"class":[6,33,112,218,324,327,332,532,570,881],"to":[7,48,139,415,436,442,471,508,544,563,708,860],"certain":[9],"type.":[10],"Interfaces":[11,173],"are":[12,65,247,297,439,515,689,698,750,803],"designed":[13],"for":[14,81,122,597,629,880,883,887],"this.":[15,254],"With":[16,284,380,477],"MI,":[17,106,381],"you":[18],"can":[19,34,97,136,148,281,290,388,484,560,662,706,719,731,779,811],"achieve":[20,443],"te":[21],"same":[22,119],"level":[23],"abstract":[25,43,59],"as":[28,301,464],"with":[29,84,105,299,310,344,391,462,527,747,799],"interfaces,":[30],"because":[31,62,107,319,351,801],"inherit":[35],"any":[36,816],"number":[37],"classes,":[39],"which":[40,498,502,567,749],"may":[41],"be":[42,99,282,291,389,485,509,561,618,652,663,721,732,780,812,875,892],"(which":[44],"makes":[45],"them":[46,458,461],"equivalent":[47],"interfaces).":[49],"Using":[50],"simple":[51,362,367],"delegation,":[52,125],"Mixins":[53,174,296,348],"or":[54,249,383,406,522,548,565],"Traits":[55,135,175,402,688,802,810,837,872,900],"does":[56,132,230,373],"not":[57,66,133,257,262,342,374,716,744,788,796,858],"help":[58],"conformance,":[61],"those":[63],"techniques":[64],"part":[67,690,753],"the":[69,109,150,166,321,335,354,401,489,504,517,535,584,598,613,642,659,669,672,685,692,702,745,755,759,764,770,776,790,797,807,819,831,867],"inheritance":[70,168,336,703],"hierarchy.":[71,704],"However,":[72],"in":[73,115,154,264,313,334,409,445,497,531,575,635,654,665,680,806,850],"Section":[74,116,314,823],"3.4,":[75],"we":[76,452,582],"will":[77,420,873],"introduce":[78],"solution":[80],"Traits,":[82,285,384,463,748,800],"dealing":[83],"this":[85,130,231,265,413,450,826],"problem.":[86,325],"Accessing":[87,199],"overridden":[88,141,200],"features":[89,201,274,289],"How":[91,271],"inherited":[92],"functionality":[93],"that":[94,400,423,541,591,658,855,862],"is":[95,102,127,338,404,507,520,529,539,542,600,625,715,739,743,773,795,857,864],"overridden,":[96,128],"still":[98],"accessed.":[100],"This":[101,705,742,794],"problem":[104,113,120,817],"fragile":[110,322],"base":[111,323],"explained":[114,312],"2.2.":[117],"The":[118,595],"holds":[121],"Mixins.":[123],"For":[124,869],"nothing":[126],"so":[129],"feature":[131],"apply.":[134],"use":[137,149],"aliasing":[138],"access":[140],"features,":[142],"and":[143,145,341,427,459,558,610,621,637,783,838,844,901],"SI":[144,170,358],"delegation":[147,368],"super-keyword.":[151],"Inheritance":[152,573],"structures":[153,160,169,433,574,579],"OO":[155,576],"21":[156],"2.8":[157,430,580],"Other":[158,431,577],"reuse":[159,177,432,444,578],"Table":[161,396],"2.1:":[162],"A":[163],"comparison":[164],"discussed":[167],"MI":[171,316],"Delegation":[172],"Code":[176],"\u2212":[178,187,188,189,203,206,212,214,215,224,242],"+":[179,180,181,190,195,202,205,207,216,221,223,225,233],"++":[182,183,191,196,198,220,226],"Compositional":[184],"power":[185],"\u2212\u2212":[186,197,222,255],"Abstract":[192],"n/a":[204,211,213,260],"Control":[208,267],"over":[209,268,287,603],"conflicts":[210,269],"\u2018Clean\u2019":[217,326],"hierarchy":[219,328],"means:":[227,234,243,256,261],"very":[228,407,723],"good;":[229,235],"implicitly.":[232],"only":[236,678],"small":[238],"programming":[239,418,447,476,480,896],"effort":[240],"required.":[241],"possible/present,":[244],"but":[245,363,366,825,846],"there":[246,438],"problems":[248],"serious":[250],"limitations":[251],"when":[252],"doing":[253],"possible/not":[258],"present.":[259],"applicable":[263],"mechanism.":[266],"well":[272],"conflicting":[273,288],"(inherited":[275],"from":[276,701,775,822],"multiple":[277],"units":[278],"reuse)":[280],"resolved.":[283],"control":[286],"achieved":[292,390],"by":[293,553,787],"using":[294,554],"exclusion.":[295],"inflexible":[298],"this,":[300],"it":[302,398,778,856],"involves":[303],"linear":[305],"way":[306,614,670,725,854,878],"composing":[308],"classes":[309,564,609],"Mixins,":[311],"2.5.":[315],"scores":[317],"low":[318,350],"Whether":[330],"tree":[333],"structure":[337,377,387,693,712],"typically":[339],"concise":[340],"bloated":[343],"redundant":[345],"composite":[346],"classes.":[347,357],"score":[349],"all":[353,641,644],"generated":[355],"extra":[356],"automatically":[359],"has":[360,592,763],"clear":[364],"structure,":[365],"(through":[369],"lack":[370],"inheritance)":[372],"have":[375,583,840],"at":[378,395,455,501,734,785],"all.":[379],"interfaces":[382,568],"clean":[386],"some":[392,456,870],"effort.":[393],"Looking":[394],"2.1,":[397],"seems":[399],"mechanism":[403,414],"good":[405,408],"every":[410],"aspect.":[411,667,686],"Adding":[412],"an":[416,495,666,709],"object-oriented":[417],"language":[419,424,897],"probably":[421,874,891],"make":[422],"more":[425,428,804],"powerful":[426],"versatile.":[429],"In":[434,449,534,834],"addition":[435],"inheritance,":[437],"other":[440,760],"ways":[441],"language.":[448],"section":[451],"briefly":[453],"look":[454],"compare":[460],"they":[465],"might":[466],"prove":[467],"better":[469,651,865,877],"alternative":[470],"Traits.":[472],"2.8.1":[473],"Aspect":[474],"oriented":[475,479],"aspect":[478,496,791],"(AOP),":[481],"existing":[482,505],"code":[483,506,538,586,596,636,661,730,772],"changed":[486,733],"without":[487,815],"modifying":[488],"actual":[490,828],"code.":[491,757,808,833],"One":[492],"must":[493],"define":[494],"pointcuts":[499,514],"specify":[500],"locations":[503],"changed.":[510],"Examples":[511],"these":[513],"\u201canytime":[516,523],"method":[518],"print()":[519],"called\u201d":[521],"field":[525],"starting":[526],"keyword...":[528],"set":[530,543],"C\u201d.":[533],"aspect,":[536],"additional":[537],"defined":[540],"execute":[545],"before,":[546],"after":[547],"around":[549],"pointcut.":[551],"Also,":[552],"introduction,":[555],"new":[556],"methods":[557],"variables":[559],"added":[562,664],"change":[566],"implements.":[571],"22":[572],"Suppose":[581],"source":[585,729,756,832],"large":[589],"program":[590,711],"logging":[593,599,616,634,647,660,673],"functionality.":[594],"spread":[601],"out":[602],"lot":[605],"different":[607,853],"packages,":[608],"methods.":[611],"Changing":[612,668],"would":[617,675,890],"tiresome":[620],"error-prone":[622],"task.":[623],"Logging":[624],"typical":[627],"task":[628],"AOP.":[630],"Instead":[631],"putting":[633],"lose":[638],"sight":[639],"places,":[643],"places":[645],"where":[646],"should":[648],"occur":[649],"could":[650],"put":[653],"pointcut,":[656],"such":[657,851],"process":[674],"then":[676],"require":[677],"modifications":[679],"central":[682],"place,":[683],"i.e.":[684],"Whereas":[687],"program,":[696],"aspects":[697],"totally":[699],"separated":[700],"lead":[707],"unclear":[710],"if":[713,894],"one":[714,863],"careful.":[717],"AOP":[718,762,771,839,885],"also":[720],"dangerous":[724],"programming.":[727],"Since":[728],"second":[736],"level,":[737],"testing":[738],"often":[740],"problematic.":[741],"case":[746,798],"completely":[751],"integrated":[752,805],"On":[758],"hand,":[761],"benefit":[765],"being":[767],"pluggable.":[768],"As":[769],"seperate":[774],"rest,":[777],"switched":[781],"off":[782],"on":[784],"will,":[786],"including":[789],"during":[792],"compilation.":[793],"Sometimes":[809],"\u2018switched":[813],"off\u2019":[814],"(e.g.":[818,879,886],"TSync":[820],"Trait":[821],"2.6),":[824],"requires":[827],"modification":[829],"short,":[835],"both":[836,847,899],"their":[841],"own":[842],"benefits":[843],"limitations,":[845],"systems":[848],"work":[849],"possible":[859],"say":[861],"than":[866],"other.":[868],"tasks,":[871],"composition),":[882],"others,":[884],"logging).":[888],"It":[889],"best":[893],"had":[898],"aspects.":[902],"[KLM97]":[903]},"counts_by_year":[],"updated_date":"2026-09-29T14:09:16.559479","created_date":"2016-06-24T00:00:00"}
