Preview only show first 10 pages with watermark. For full document please download

Dprn2_u2_a1_ivmi

Descripción: DPRN2_U2_A1_IVMI

   EMBED


Share

Transcript

Programación net II Unidad 2. Herencia y polimorfismo en el lenguaje de programación C Sharp SECRETARIA DE EDUCACION PUBLICA Actividad 1. Herencia Unidad 2. Herencia y poi!or"#!o en e en$%a&e de pro$ra!aci'n pro$ra!aci'n C S(arp Iván Alexander Maldonado Ibarra Programación net II Unidad 2. Herencia y polimorfismo en el lenguaje de programación C Sharp La herencia es una de las bases i!ortantes de la !rograaci"n orientada a ob#etos$ %racias a ella se !ueden definir clases nue&as 'ue est(n basadas en otras clases ya existentes$ )ay 'ue tener en cuenta 'ue *isual C+ solaente so!orta herencia si!le y no herencia lti!le$ Esto 'uiere decir 'ue a !artir de una clase se !uede construir otra, !ero no a !artir de &arias clases$ Con la herencia todas las clases est-n clasificadas en una #erar'uía estricta$ Cada clase tiene su su!erclase .la clase su!erior en la #erar'uía tabi(n llaada Clase base/, y cada clase !uede tener una o -s subclases .las clases inferiores en la #erar'uía0 se llaan clases deri&adas/$ CLAS Interface !"I#ICI$# US$ ALCA#C CA%AC&%IS&ICAS De)e!o# a#ociar inter*a+ con co!porta!ie nto o !e&or a,n- con contrato. Una inter*a+ epone %n contrato /%e de)e c%!pir#e. Un e&e!po t0pico de %#o de contrato# #on o# Servicio# C en .NET. B3#ica!ente #e trata de repre#entar %n contrato /%e de)e Una inter*a+ en C4 en reaidad de"nen %n con&%nto de !en#a&e# /%e #e p%eden apicar a !%c(a# ca#e# de o)&eto# a o# /%e cada %na de ea# de)e re#ponder de *or!a adec%ada. E# %na ca#e /%e no #e p%ede in#tanciar. Se %tii+a e#tricta!en te para de"nir #%)ca#e#. Una inter*a+ re,ne %n con&%nto de !ie!)ro# a)#tracto#. La p%nt%ai+aci'n e# /%e en %na inter*a+ #'o #e de"nen o# !ie!)ro#- y n%nca #e i!pe!enta nada. Lo# !ie!)ro# de %na inter*a+ 5todo#6 #on p,)ico# por de*ecto. '(PL$ inter*ace IDi!en#ion# 7 8oat Len$t(569 8oat idt(569 : ca## Bo ; IDi!en#ion# 7 8oat en$t(Inc(e#9 8oat > Epicit inter*ace !e!)er i!pe!entation; 8oat IDi!en#ion#.Len$t(56 7 ret%rn en$t(Inc(e#9 : >> Epicit inter*ace !e!)er i!pe!entation; 8oat IDi!en#ion#.idt(56 7 ret%rn > Decare a ca## in#tance @!yBo@; Bo !yBo = ne< Bo5.*- 2.*69  Programación net II Unidad 2. Herencia y polimorfismo en el lenguaje de programación C Sharp >> Decare an inter*ace in#tance @!yDi!en#ion#@; IDi!en#ion# !yDi!en#ion# = 5IDi!en#ion#6 !yBo9 >> Print o%t t(e di!en#ion# o* t(e )o; > T(e *oo >>Sy#te!.Con#oe.riteLine5@Len$t(; 7:@!yBo.Len$t(5669 >>Sy#te!.Con#oe.riteLine5@idt(; 7:@!yBo.idt(5669 > Print o%t t(e di!en#ion# o* t(e )o )y cain$ t(e !et(od# *ro! an in#tance o* t(e inter*ace; > Sy#te!.Con#oe.riteLine5@Len$t(; 7:@!yDi!en#ion#.Len$t(5669 Sy#te!.Con#oe.riteLine5@idt(; 7:@!yDi!en#ion#.idt(5669 : : c%!pir c%a/%ier ca#e /%e i!pe!ente a inter*a+. Abstracta Una Ca#e A)#tracta de"ne %n contrato en donde a# ca#e# derivada# de)en de"nir a# *%ncione# /%e a ca#e padre !arca %tii+ando a paa)ra re#ervada a)#tractade!3# /%e a ca#e Una Ca#e A)#tracta no per!ite /%e #e creen o)&eto# en ea. S% !i#i'n e# proporciona r !ie!)ro# co!%ne# /%e #er3n co!partido # por toda# #%# #%) ca#e#. Una Ca#e A)#tracta de"ne a# *%ncione# /%e %na ca#e derivada de)e i!pe!enta r. ?%c(a# vece# #e con*%nde con ca#e )a#e. Una ca#e a)#tracta p%ede contener '$ica y *%ncionaidada$o /%e e# coincidente con %na ca#e )a#e. Sin e!)ar$o- no e# po#i)e in#tanciar %na ca#e a)#tracta. E# decir- para %tii+ar %na ca#e a)#tractano 1; na!e#pace OOP 2; 7 ; p%)ic a)#tract ca## Sa%do ; 7   ; p%)ic a)#tract #trin$ FetSa%do569   G; p%)ic #trin$ FetSa%doCo!peto5#trin$ na!e6 ; 7 ; ret%rn #trin$.or!at5@7: 71:@FetSa%do56- na!e69 J; : 1; :   11; 12; p%)ic ca## Sa%doSpani#( ; Sa%do 1; 7 1; p%)ic override #trin$ FetSa%do56 1; 7 1G; ret%rn @Hoa@9 1; : 1; :   1J; 2; p%)ic ca## Sa%doEn$i#( ; Sa%do 21; 7 Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 2 Programación net II Unidad 2. Herencia y polimorfismo en el lenguaje de programación C Sharp padre ta!)iKn #e de"ne co!o a)#tract. Sellada E !odi"cador #eaed #e p%ede apicar a ca#e#!Ktodo# y propiedade# de e#ta#. Una Ca#e #eada #e %tii+a para prevenir /%e %na ca#e #ea %tii+ada co!o %na ca#e )a#e#% principa %#o e# para prevenir a derivaci'n no paneada. Una ca#e #eada no #e p%ede %tii+ar co!o ca#e )a#e. Por e#ta ra+'nta!poco p%ede #er %na ca#e a)#tracta. La# ca#e# #eada# evitan a derivaci'n. P%e#to /%e n%nca #e p%eden tene!o# !3# re!edio /%e (eredar de ea. No o)#tantepode!o# #o)re e#cri)ir o# !ie!)ro#!Ktodo# y *%ncione# de %na ca#e a)#tractae inc%#o etender a ca#e /%e (erede de ea con a# partic%aridade# /%e con#idere!o# oport%na#. Una ca#e #eada no #e p%ede (eredar. 22; p%)ic override #trin$ FetSa%do56 2; 7 2; ret%rn @Heo@9 2; : 2G; : 2; : #eaed ca## Ca#eBa#e7 Ca#eBa#e567: : ca## Ca#eDerivada ; Ca#eBa#e7 : ca## Seada7 p%)ic #tatic void ?ain567 Ca#eDerivada CD = ne< Ca#eDerivada569 : : A co!piar e c'di$o #e !%e#tra e #i$%iente !en#a&e; sealed.cs(4,7): error CS0509: 'ClaseDerivada' : cannot inherit from sealed class 'ClaseBase' sealed.cs(,4): (!ocation of s"m#ol related to $revio%s error) E error e# por/%e Ca#eDerivada no p%ede Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 3 Programación net II Unidad 2. Herencia y polimorfismo en el lenguaje de programación C Sharp %tii+ar co!o ca#e )a#ea$%na# opti!i+acio ne# en tie!po de e&ec%ci'n p%eden (acer /%e #ea %n poco !3# r3pido a!ar a !ie!)ro# de ca#e #eada. %tii+ar Ca#eBa#e co!o %na ca#e )a#e por/%e Ca#eBa#e e# #eaed- e# decir- no per!ite derivacione#. Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 4