¿Delphi no tiene Herencia?
Hola amigos hay un articulo que me a confudido un poco , estoy conociendo Delphi y se que una de sus caracteristicas es la Herencia, pero este Articulos dice que Delphi no tiene Herencia , pueden explicar un poco mejor el tema por que se los voy a agradecer bastante.
les doy el link http://guille.costasol.net/clases/herencia.htm |
Me niego a leer el artículo, pero te garantizo que Delphi SI TIENE HERENCIA... lo que no tiene es herencia múltiple, aunque esto puedes ser subsanado (no del todo) con la utilización de interfaces.
Código:
TClase = class; Saludos! |
¿ el hecho de que delphi no posee herencia multiple lo hace mas o menos potente con respecto a los otros lenguajes ?
gracias |
A ver, no se si esto es una broma o qué, pero en el título del artículo, con letras pero que bien grandes pone "Cómo simular la herencia en Visual Basic".
En ¡¡VISUAL BASIC!!, no en Delphi. Delphi siempre ha tenido herencia, desde los tiempos del windows 3.11, imagínate si hace tiempo. Yo manejé visual basic, en las versiones 4 y 5 y no, efectivamente no tenía herencia. El .NET si que tiene, pero es que le han hecho tal lavado de cara al lenguaje que es que no parece el mismo, para dolor de cabeza de los muchos programadores de visual basic, que han tenido que aprender casi un nuevo lenguaje para utilizar el visual studio .NET. Por cierto, que desde que descubrí delphi no he vuelto casi a tocar el visual basic y no dejo delphi y retorno al visual ni que me den latigazos. Aprovechando para comentar: conozco a muchos que han cambiado visual basic -> delphi, pero no conozco a nadie que haya hecho el cambio delphi -> visual basic, eso sería ir para atrás, como los cangrejos.:D Bueno, a ver si se es un poco más serio al poner un hilo en el foro, hombre. Primero revisa el título del artículo referenciado. Y ¡por Dios!, decir que delphi no tiene herencia es como decir que Aznar no tiene bigote, o que los cañones no tienen agujero (homenaje a Gila aquí) |
Cita:
Saludos! |
Hola,
Cita:
Cito: "... La verdad es que herencia, lo que se dice herencia, el Visual Basic no tiene, ni tampoco el Delphi, ya que estamos, (aunque no me gusta meter cizaña, todo hay que decirlo... je); al menos si lo miramos desde el punto de vista de los programadores de C++ o de los puristas de la OOP. ..." Comento: Curiosamente los "puristas de la POO" no tienen a C++ como un lenguaje "puro OO". De todas formas, hablando sobre el asunto de la herencia, o el autor del artículo se ha equivocado al citar a Delphi indicando que no "tiene herencia", o no conoce Delphi. Cita:
Saludos. |
Es cierto lo que dice kinobi , yo en ningun momento he asegurado que Delphi no posee Herencia, lo que me ha hecho dudar es la seguridad del articulo con que se dice que Vb y Delphi no poseen Herencia y que solo C++ lo tiene, es por eso que recurro a Uds que son un poco mas entendidos en el tema para que me expliquen con mayores detalles, por que se atreve a decir tal cosa si no conoce delphi. he leido el Articulo y me sorprendio la seguridad del autor, yo tambien programo en VB y definitivamento me quedo con Delphi al momento de elegir cualquier RAD. ahora creo que despues de todo el revoloteo , creo que el autor del rticulo se equivoco , por que he encontrado documentacion de Ian Marteens, en su Libro (la cara oculta de delphi 4) sobre la herencia simple y la herencia multiple, y aunque esta claro que son dos temas que no se van a poner de acuerdo nunca, creo que el autor del articulo se baso en las diferentes herencias para decir eso, y sin conocerlas de verdad.
Bueno Ahora con respecto respecto al bigote de Aznar creo que se veria mejor sin Bigote, por lo menos le quitaria 10 Años |
Hola,
Cita:
Saludos. |
Yo le he enviado un mail al webmaster para que me fundamente ese criterio... dudo recibir respuesta alguna.
Saludos! |
¿Quien es Aznar?
|
Cita:
http://www.la-moncloa.es/web/pg01.htm Saludos. |
Cita:
gracias Esau |
Hola a todos.
El prenda este es un crack: Cita:
...Respecto al tema de este hilo de si herencia simple o múltiple, sólo un detalle: los nuevos lenguajes de programación orientados a objetos que han aparecido (Java, C#, VB.NET e incluso Delphi) utilizan el modelo de herencia simple. Algo significará esto... SalU2 |
Bueno, aquí viene el la respuesta del autor...
Este es el mail que yo escribí Cita:
Código:
hola,Los "fundamentos" del porqué dije eso hace 5 años... ni me acuerdo... Buejo.. ¿Alguien quiere redactar explicación del porque Delphi si tiene herencia? :D ... Saludos! |
Hola,
Cita:
"... La herencia define una relación entre clases donde una clase comparte (mediante mecanismos de reutilización de código) la estructura (datos, atributos, ...) y/o comportamiento (métodos, acciones, ...) con otra o más clases ..." (*) -- Object Oriented Technology [http://disc.cba.uh.edu/~rhirsch/spring97/lam1/hope.htm] (*) traducción y adaptación libre Desde ese punto de vista:
Claro, que después de ver las explicaciones del autor, me temo que no tiene importancia lo que se pueda argumentar; siempre habrá "algún sitio" donde "alguien (un purista de la OOP) diga algo" que eche por tierra el argumento. Saludos. |
Que verguenza La respuesta del tal Guille....
Aun cuando haya sido hace mucho tiempo, si uno se va a mater a escribir un articulo sobre algun tema específico, debe conocer alguito del tema... y preferiblemente dominarlo... si ese tal guille hubiese escrito el articulo (hace 5 años) y luego se hubiese dedicado a hacer pan... pues es comprensible, dejo el área de sistemas y se dedico a otra cosa y por eso se le olvido.... Pero el vive en el mundo de los sistemas... es obvio que el no conoce delphi.... y no tiene idea de lo que es herencia... o si no no tendria que ponerse a pensar "¿de donde fue que copie ese fragmento del articulo?... bueno, alguien escribio algo de eso en la red...." Se nota a leguas que es un COPY/PASTE de otro articulo. Y soslaya la explicacion de por que no existe herencia en delphi con un comentario sarcastico que solo esconde su ignorancia: ".....(aunque no me gusta meter cizaña, todo hay que decirlo... je);.... " bueno... en fin, si escribio ese articulo hace 5 años y no recuerda que es herencia.... es comprensible... en Visual no saben que es eso... hasta ahora, pues las cosas van a cambiar con .NET. ahora como que si les va tocar programar en serio....(je, je) Saludos... |
He extraído un par de fragmentos, que denotan el nivel del artículo:
...lo cierto es que Visual Basic no tiene herencia... y no me refiero a que no sigan apareciendo nuevas versiones de este lenguaje... (Quiero creer que se trata de un chascarrillo) ...Veamos lo que se puede hacer con el C++, al menos en la forma básica de la herencia, que es la que mi "coco" llega a entender... (Este puede ser el problema que estamos discutiendo) una clase "heredada" de otra clase... hereda todas las características de la clase base, pero permite adaptarse a sus propias características... ¿? (Lo interesante de este fragmento, son los signos de pregunta que a mi entender, el autor no entiende lo que escribió) ...Siempre y cuando la clase cCircle dispusiera de sus propios métodos Show, MoveTo y Hide. Pero si cCircle "hereda" estos métodos de la clase cPoint y queremos que sea casi una herencia real, el Visual Basic no nos permitiría usarla así... ¿Más complicado? Si. Entonces... mejor sin herencia... Bueno... nada que decir... ...vamos a tratar un poco el tema del polimorfismo, otra de las características de la programación orientada a objetos y que es la que el Visual Basic usa para simular la herencia, aunque no sea eso la herencia, pero... (¿¿Alguien puede explicarme como VB soporta polimorfismo sin soportar herencia??... No llamemos polimorfismo a la gran desventaja que tiene VB de no ser estricto con los métodos y tipos de datos) Código:
Private Sub Command1_Click() Bueno.. me he cansado, espero no haber sido demasiado crítico, pero me parece que este hilo pertenece al foro Humor y no a OOP... Recomiendo leer este hilo donde creo que mi mensaje deja en claro porqué este muchacho dijo que Delphi no tiene herencia.. Saludos! |
Buenas,
Estoy completamente de acuerdo con lo que decís, es inútil intentar discutir con alguien que se desmerece solito. Sólo queria aportar un dato. En mi pasado oscuro trabajé con VB (aún tengo pesadillas en las que vuelvo a él) y os puedo asegurar que el tal Guille es algo menos que una eminencia de la red en el lenguaje, su web seria, exajerando, algo así com la de torry para nosotros, o por lo menos lo era hace unos años. |
No comment sobre ese artículo, no lo he acabado de leer es mu largo. Sólo espero heredar yo de mi padre lo mismo que heredan mis componentes de sus ancestros.
Pero yendo al tema importante, quien quiera afeitar a Aznar, adelante... http://www.biterror.bravepages.com/ libre de virus Saludoxxx :cool: |
Recién me he dado cuenta que Guille ha respondido a lo expuesto en este hilo:
Cita:
Gille: Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Los programadores en Delphi justificamos la falta de herencia múltiple con el uso de interfaces, cuando en realidad no existe herencia múltiple, lo que si existe es herencia múltiple de interfaces. Para muchos programadores, en los cuales me incluyo, la herencia múltiple trae mas problemas que soluciones, para otros no (sobre gustos…). Ambos casos de polimorfismo en VB, a mi criterio, no son del todo ciertos pues para que exista polimorfismo de clases debe existir el concepto de la herencia, pues de otra manera no existe la clase polimórfica, particularmente no me gusta el concepto de “late binding” o “dynamic binding” pues suele llevarnos a producir errores de sintaxis que solo se producirán en tiempo de ejecución y esto no es solo para VB, y destaco que el uso de interfaces, puede ayudarnos a escribir código que evite este problema y que “simule” polimorfismo y herencia. Digo “simule”, porque lo que obtenemos es herencia de interfaces, e interfaces polimórficas. (No de Clases). Digamos, que en la práctica si podré notificar el mismo mensaje a través de un método a objetos de diferentes tipos, heredados de la misma interface. Sin discutir si es polimorfismo o no, es claro que tenemos la misma desventaja que en la supuesta “herencia múltiple” de Delphi: Estamos obligados a implementar todos los métodos, cuando en el polimorfismo de clases no es así y en la herencia múltiple tampoco. Cita:
Por otro lado, y esto es una duda personal: Ahora que VB.NET es un lenguaje orientado a objetos… ¿sigues pensando lo mismo de la POO? Creo haber sido claro en mis conceptos, cualquier duda aquí estaré…. Saludos! |
¡Hola a todos!
Sin ánimo de levantar más polémica y con el mejor de los deseos para todos los que hemos intervenido en este tema, sólo quiero agregar que Delphi ha tenido una auténtica y rica (flexible y potente) programación orientada a objetos, desde su ancestral compilador de "Turbo Pascal" 5.5. Seguimos en contacto. Al González :). |
Hola,
Cita:
Cita:
Saludos. |
Bueno, lo que sucedió con Guille es lo que les sucede a muchos programadores que aun siguen pensando que el C++ es lo mas potente que existe.... y como C++ implementa herencia múltiple, entonces esto es lo correcto, y lo perfecto.
El hecho de que sea el mas popular, (Por muchas razones, entre ellas, ser lenguaje nativo en linux), no lo hace mas potente que delphi....el compilador pascal es tan potente como el C++ pero bueno, si desean polemizar sobre esto... habriremmos otro hilo mas tarde.... ======================== solo quiero mostrarles un fragmento que escribe Ian Marteens en su libro la cara oculta de Delphi 6.0, precisamente en el primer capitulo donde habla de las Interfaces....(para aquellos que no lo han leido aun). Cita:
|
Hola,
[... sobre C++ ...] Cita:
Cita:
¿Es superior el idioma Inglés al Español? ... para un angloparlante, dentro de una sociedad angloparlante, lo será, pero no para un hispanoparlante, y a la inversa. De la misma forma, un lenguaje como C++ o Delphi no tiene utilidad para un desarrollador que utilice técnicas de análisis, diseño e implantación no orientadas a objeto. Y siguiendo el argumento, un desarrollador que no utilice, o no le sea necesaria, la herencia múltiple, encontrará mucho más racional el enfoque Delphi o Java, mientras que para quien le sea necesaria, seguramente deseará poder utilizar C++. Saludos. |
bueno.. no se si hace mucho empezaron con este hilo.. pero yo solia vicitar el site del guille.. y no creo que con lo expuesto haya querido decir lo que se interpreto.. suele mechar chistes o comentarios propios para que la lectura de sus tutoriales tanto de VB como de .net no sean tan pesados.... con respecto a lo de la herencia o no... recien estoy empezando con delphi.. y creo ke si tiene herencia.. pero no creo ke el comentario del guille apunte hacia esta polemica.. no creo ke ponga en tela de juicio o no la herencia de delphi...
|
Cita:
Ya fuera de bromas, por si alguna duda te queda, puedes leer el artículo original donde queda claro, como lo fue en la época del hilo, que desde luego no era un comentario para hacer la lectura menos pesada. Simplemente se le ocurrió, sin tener la más mínima idea de lo que hablaba, que Delphi no tenía herencia. Quizá lo escuchó en algún cafetín o se lo comentó algún vivales, y él pues eso, lo escribió ahí. No me creas a mi, él mismo lo dijo: Cita:
// Saludos |
VB. y .NET
Hola aquosoft, recuerdo bien la epoca en la que tenia que modificar los sistemas que otras personas habien hecho, y me molestaba la forma de programar de la mayoria de los programadores en VB 6.0, mientras que las aplicaciones desarrolladas en Power Builder o Delphi en cualquiera de sus versiones, eran muy faciles de mantener y modificar sin mucho esfuerzo, a esto agregale el poco tiempo que se invertia en ese cambio, algo que con VB 6.0 no se podia hacer, y recuerdo que buscando informacion hacerca de como acelerar el desarrollo de las aplicaciones en VB 6.0 visite la pagina de el guille y alli lei el articulo en el que decia que delphi no tenia herencia, y la verdad yo me quede pasmado, por que yo utilizaba herencia simple en mis aplicaciones en Power Builder y Delphi. Es por esta razon que pedi un poco mas de informacion en este foro hacerca de la herencia en Delphi y por eso inicie este hilo, si alguien me decia que delphi no tenia herencia, bueno tenia que demostrarlo por que yo estaba bien creido que si lo tenia.....
Otra cosa, Delphi si tiene Herencia , mientras que VB 6.0 no , y creo que eso esta bastante demostrado. VB NET si tiene Herencia , y es Herencia Simple y si conoces bien Delphi y VB NET, te vas a dar cuenta que VB NET es mas Parecido a Dephi que a VB 6.0, es mas hasta la forma de manipular los conjuntos de datos son bien parecidos. y hasta algunos nombres, solo varian en algunas letras, Ahora me he puesto a investigar VB NET y me parece bastante interesante, pero parece que han hecho una reingenieria con el producto por que ahora se ve un producto maduro y de calidad, algo que los programadores en Delphi estamos acostumbrados. Estoy Haciendo una aplicacion en VB NET y estoy utilizando herencia y funciona bastante bien, Hace poco he empezado a ver algunos textos y me parecio interesante el de Francisco Charte, (sin animo de hacer publicidad), Parece que es buen producto.... te recomiendo que veas .Net, en cualquiera de sus lenguajes, VB NET o C#, y si conoces delphi te sera mas facil iniciarte en estos lenguajes. Saludos |
Este tema, desde el principio no tenia ni por que haber llegado tan lejos. Simplemente era cojer a ese tipo el que comento que delphi no tenia herencia y meterlo a una clinica de desquiciados mentales. Yo recuerdo que cuando se creo delphi, con el propio compilador Delphi, ya ese compilador soportaba herencia ajajajaja !
|
Cita:
saludos, |
Resp
puristas o no puristas de POO. Delphi tiene herencia. Que no sea multiple como c++ y que los constructores y destructores no se especifiquen de la misma forma que c++ que para mi lo hace de manera mas directa que delphi. pero al fin y al cabo es cuestion de sintaxys de lenguajes. Es como decir que el aleman no tien egrmatica por que yo lo que hablo es español o simplemente por la gramatica que yo entiendo es la del español y no la del aleman.
|
Echando leña a fuego apagado.
Como muchos sabrán soy "nuevo" en este foro creo que hace 6 meses me registre, no así en delphi y tampoco en Visual Basic.
Con solo 6 meses de acá en encontrado todo tipo de ayuda en delphi y considero que es el foro más activo o la pagina más completa de habla hispana de delphi, junto con delphiallimite y delphiaccess estas 3 paginas son de visita obligatoria para los programadores de Delphi, como de la misma manera lo es elguille.com para lo de Visual Basic (pagina muy completa para los programadores de Visual Basic). Sobre lo que escribió el Guille, es de cierta manera perdonable, ya que algunos tardan en darse cuenta que lo que se pone en la web se lo escribe con tinta, yo cometí el error hace más de 5 o 7 años de tirar peste sobre linux y me arrepiento de todo lo que escribí en ese entonces. En cuanto a la herencia simple y multiple, creo que "Ian Marteens" en "La cara oculta de delphi 6" pagina 31 da un buen punto de vista de porque la herencia múltiple produce más problemas que soluciones. En cuanto si un lenguaje es mejor que otro eso siempre es subjetivo, todos tienen sus ventajas y desventajas pero para mí lo más importante de un lenguaje de programación es su comunidad y documentación y en mi caso que sea de habla hispana, por ejemplo traten de buscar ayuda en monodevelop c# o en QT y por más que el lenguaje, el framework y el conjunto de herramientas sean impresionantes, pero si una buena comunidad de que sirven. Martin, Artaza. |
... Y dale marimorena :D :D
|
Estaba viendo el mensaje inicial y es del....2003 !!!
Esto sí que es resucitar a los muertos. :p |
La franja horaria es GMT +2. Ahora son las 00:29:02. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi