Sie sind auf Seite 1von 16

Interfaces de usuario en Netbeans

Requerimientos para el módulo:


 Netbeans
 Lectura

En el presente módulo, aprenderemos a desarrollar aplicaciones en Java con interfaz de


usuario utilizando Netbeans como IDE para realizar esa tarea. Conoceremos las
propiedades y eventos de cada uno de los controles y la funcionalidad general de cada
uno de ellos. Algunos son útiles para capturar datos de los usuarios, mostrar mensajes o
etiquetas, permitir que el usuario seleccione entre una lista de varias opciones, capturar
textos largos, etc.

Es importante que para el diseño de interfaces de aplicaciones profesionales se sigan los


lineamientos establecidos en las propiedades de cada uno de los controles.

Para conocer cada uno de los controles, revisaremos la descripción de los elementos
siguientes:

Swing GUI (Graphical User interface) Forms


Utilizamos algunos componentes para darle vida a las aplicaciones de software. Dichos
componentes son la representación de las acciones que los usuarios tendrán al momento
de interactuar.

Áreas
En la interfaz principal para desarrollar interfaces de usuario encontramos las siguientes
áreas:

Área de diseño: Es el área que nos permite definir la interfaz de un usuario para un
formulario, se ubica cada uno de los componentes en la vista de diseño. en la
vista Source de la barra de herramientas, podremos ver la lógica de aplicación para las
aplicaciones que estamos creando.

Paleta: Contiene la lista de componentes que podrémos agregar a nuestros formularios,


dentro de los que destacan Containers, Controls y Menus .

Propiedades: Cada vez que seleccionemos uno de los componentes, serán desplegadas
sus características por medio de esta área.
Algunas consideraciones:
Los constructores de interfaces de Netbeans y en general de los IDEs, nos permiten la
creación de interfaces gráficas de manera eficiente y simplificada, permitiendo a los
desarrolladores utilizar componentes y adaptarse a reglas de diseño que son fácil de
seguir y entender. Podemos desarrollar formularios inlcuso arrastrando y soltando los
componetes, ubicándolos en posiciones deseadas si así es el caso.

Elementos en Swing GUI Forms

Swing Containers
Son los contenedores que podemos utilizar para organizar los componentes agregados a
los formularios de la aplicación desarrollada. Las características principales de ellos se
resumen a continuación:

1. Panel:

Podemos personalizar un Panel para hacer que contenga un grupo de elementos


diferentes arrastrándolos a el de forma simple. Es posible crear en la
vista Source definiendo los paneles de la siguiente manera:

JPanel p = new JPanel(new BorderLayout());

y agregar algunos de los elementos:

aFlowPanel.add(aComponent);
aFlowPanel.add(anotherComponent);

2. Tabbed Pane

Nos permite agregar componentes subdivididos de forma que el usuario pueda seleccionar
dieferentes vistas en el mismo espacio del formulario. En tab1 podemos ubicar
componentes que cumplan cierta funcionalidad, mientras que en tab2 podemos tener otros
componetes, ocupando el mismo espacio del formulario.

3. Split Pane
Nos permite desplegar dos componentes por defecto, agregando funcionalidaes que
enlazen los dos componentes, por ejemplo, podemos usarla para desplagar una lista de
nombres al lado iaquierdo y al seleccionarlo desplegar su edad en el lado derecho. Su
estructura es la siguiente:

Otros componentes:
4. Scroll Pane
5. Tool Bar
6. Desktop Pane
7. Internal Frame
8. Layered Pane

Controles:
1. Label

Sirve para colocar mensajes o etiquetas que ayuden a referenciar otros controles o
transmitir cierta información. Podemos establecerle diversas propiedades y estilos para
adaptarlo a los requerimientos de las aplicaciones.

2. Button:

Permite ejecutar acciones cuando el usuario lo presiona, desencadena ciertas condiciones,


validar datos, guardarlos o pasar entre formularios. Permite ser personalizado con
diferentes propiedades de estilos, para poder adaptarse a los lineamientos y
requerimientos de desarrollo.

3. CheckBox:

Por medio de un CheckBox podemos dar opciones al usuario a que seleccione algunas
alternativas condicionales para nuestras aplicaciones.

4. RadioButton: Componente de selección, puede ser usado en un grupo para validar la


selección única.

Elementos de lista
Estos componentes nos permiten agrupar una lista de datos para que el usuario pueda
seleccionar entre varias opciones.

1. Combo Box

Es un componente tipo combo, con datos agrupados en ella para que sean desplegados
cuando los usuarios deben escoger un solo valor de una lista.

2. List

Permite agrupar las diferentes opciones en una lista generalmente visible dependiendo del
número de elementos contenidos en ella.

Entrada de datos
1. Text Field

Permiten dar la opción al usuario de escribir información para la ejecución de la lógica de


las aplicaciones.

2. Text Area

Permite a los usuarios la escritura de cadenas de texto largas, siendo útil para campos de
recomendaciones, descripción de productos.

3. Formatted Text Fields

Formatear los cuadros de texto permite a los programadores limitar a los usuarios a
ingresar sólo la información necesaria según el caso, por ejemplo, para validar números de
télefono, correo electrónico, etc.

4. Password Field:

Componente que permite la escritura de información de forma oculta, generalmente para


permitir a los usuarios ingresar su contraseña en aplicaciones de software que lo
requieran.

5. Tree:

Permite establecer una jerarquía de directorios y documentos que sean utiles para las
finaliadaes de las aplicaciones:

Otros Controles
6. Progress Bar
7. Spinner
8. Editor Pane
9. Separator
10. Table
11. Slider

Menus
Establecen opciones en una estructura de menú, agrupando ciertos elementos según
criterio de funcionalidad, permitiendo un orden definido en la linea de ejecución de las
aplicaciones. Podemos agregar items de menú en la barra principal, lo que nos permitirá
agregar muchos más elementos que permitan desencadenas diferentes acciones.

Hola Mundo - Interfaces en Netbeans


1. Entorno inicial de Netbeans

2. Nueva aplicación Java

1.

3. Detalles del proyecto (Nombre y ubicación)

4. Vista Source

5. Agregaremos un JFrame al proyecto, será la interfaz con la que los usuarios interactúan en
nuestros programas.

6. Entorno de trabajo para creación del formulario.

7. Agregar un botón a nuestro formulario


8. Ahora, necesitamos que al hacer Clic en el botón que hemos agregado, nos muestre
nuestro mensaje "Hola Mundo", para ello, hacemos clic derecho sobre el botón,
seleccionamos Events - Action - actionPerformed como se muestra a continuación.

9. La vista de cófigo fuente es desplrgada para empezar a escribir el código necesario.

10. Agregamos dentro del código del botón la linea:

JOptionPane.showMessageDialog(this, "Hola Mundo");

11. Cambiamos el texto del botón por Mostrar mensaje , tendríamos una vista previa como la
siguiente:

12. AL hacer Clic en el botón, tendremos como resultado un mensaje como el siguiente:

Hemos visto en los anteriores pasos, de forma simplificada, como se crea un proyecto con
un formulario para hacer funcionar un Hola mundo con interfaces en Netbeans. Ver sódigo
fuente en Recursos de este módulo.
Crear un programa de Suma en
Netbeans
Pasos:

1. Crear un nuevo proyecto como en Netbeans -


2. Agregar un JFrame Form
3. En la vista de Diseño del área de trabajo - Agregar los siguientes controles

1 Label : Suma de dos números

1 Label : Número 1

1 Label : Número 2

1 Label : Resultado

1 Button : Sumar

3. Cambiar los nombres de los 3 TextFields a numero1 , numero2 y numero3

(Para cambiarlo: Clic derecho sobre el TextField y Change Variable Name ... ó cambiar
nombre de variable)

4. En la pestaña Source del área de trabajo de Netbeans, codificar lo siguiente

Inicializar las variables necesarias

...

public class HelloWorld extends javax.swing.JFrame {


/**
* Creates new form HelloWorld
*/
//El siguiente es el código agregado
int numero1 = 0;
int numero2 = 0;
int resultadoSuma = 0;
public HelloWorld() {
initComponents();
//Inicializar variables
}

...

El código que debe ir en el botón es el siguiente:


Las primeras líneas asignan a la variable numero1 y numero2 los valores escritos por los
usuarios en los TextFields , que serán sumados.

resultadoSuma = numero1 + numero2; Representa la suma de las dos variables,


asignando el resultado en resultadoSuma

this.resultado.setText(String.valueOf(resultadoSuma)); asignamos al
TextField resultado el valor de resultadoSuma .

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {


numero1 = Integer.parseInt(this.num1.getText());
numero2 = Integer.parseInt(this.num2.getText());

resultadoSuma = numero1 + numero2;

this.resultado.setText(String.valueOf(resultadoSuma));
// TODO add your handling code here:
}

Resultado:
Al ingresar dos números y presionar el botón sumar, el resultado debe parecer en el
campo correspondiente:

*Código fuente en Recursos

Modulo 8

Interfaces
Creación e implementación
Introducción al módulo
Hay una serie de situaciones en la ingeniería de software cuando es importante para
grupos dispares de programadores acordar un "contrato" que explique cómo interactúa su
software. Cada grupo debe poder escribir su código sin ningún conocimiento de cómo se
escribe el código del otro grupo. En términos generales, las interfaces son tales
contratos.

Por ejemplo, imagine una sociedad futurista donde los autos robóticos controlados por
computadora transportan pasajeros a través de las calles de la ciudad sin un operador
humano. Los fabricantes de automóviles escriben software que opera el automóvil:
detener, iniciar, acelerar, girar a la izquierda, y así sucesivamente. Otro grupo industrial,
los fabricantes de instrumentos electrónicos de orientación, fabrican sistemas informáticos
que reciben datos de posición de GPS (Sistema de Posicionamiento Global) y transmisión
inalámbrica de las condiciones del tráfico y usan esa información para conducir el
automóvil.

Los fabricantes de automóviles deben publicar una interfaz estándar de la industria que
detalla los métodos que se pueden invocar para mover el automóvil (cualquier automóvil,
de cualquier fabricante). Los fabricantes de orientación pueden escribir software que
invoque los métodos descritos en la interfaz para controlar el automóvil. Ninguno de los
grupos industriales necesita saber cómo se implementa el software del otro grupo. De
hecho, cada grupo considera que su software es altamente propietario y se reserva el
derecho de modificarlo en cualquier momento, siempre y cuando siga cumpliendo con la
interfaz publicada. Java

Definición de Interfaces

Conceptos:

Una interface es un grupo de métodos relacionados, los objetos definen su interación con
el mundo exterior por medio de sus métodos que exponen. Los métodos forman la interfaz
del objeto con el mundo exterior.

Una Interface es una clase completamente abstracta.

 Para su declaración en java se usa la palabra reservada Interface


 En la declaración de Interfaces lo que aparece es declaraciones de métodos y definiciones
de constantes simbólicas.

interface Bicicleta {

// Revoluciones por minuto


void changeCadence(int newValue);

void changeGear(int newValue);


void speedUp(int increment);

void applyBrakes(int decrement);


}

Una interfaz es un tipo de referencia, similar a una clase, que puede contener solo
constantes, firmas de métodos, métodos predeterminados, métodos estáticos y tipos
anidados. Los cuerpos de método existen solo para los métodos predeterminados y los
métodos estáticos. Las interfaces no se pueden instanciar: solo pueden implementarse
por clases o extenderse por otras interfaces.

Implementación de Interfaces

Para implementar la interface Bicicleta que se ha creado, es necesario establecer lo


siguiente:

class ACMEBicycle implements Bicycle {

int cadence = 0;
int speed = 0;
int gear = 1;

// El compilador ahora al implementar la interface requiere los métodos


// changeCadence, changeGear, speedUp, and applyBrakes
// La compilación fallará si esos métodos no están en la clase

void changeCadence(int newValue) {


cadence = newValue;
}

void changeGear(int newValue) {


gear = newValue;
}

void speedUp(int increment) {


speed = speed + increment;
}

void applyBrakes(int decrement) {


speed = speed - decrement;
}

void printStates() {
System.out.println("cadence:" +
cadence + " speed:" +
speed + " gear:" + gear);
}
}

La implementación de una interfaz permite que una clase se vuelva más formal sobre el
comportamiento que promete proporcionar. Las interfaces forman un contrato entre la
clase y el mundo exterior, y el compilador hace cumplir este contrato en tiempo de
compilación. Si su clase pretende implementar una interfaz, todos los métodos definidos
por esa interfaz deben aparecer en su código fuente antes de que la clase se compile
correctamente. Java

Creación y uso de Interfaces


Las interfaces se encargan de definir y establecer como un estándar un conjunto de
acciones que aplican para que diferentes clases puedan implementarlas. Las interfaces se
utilizan cuando clases no relacionadas necesitan compartir métodos y constantes
comunes.

Comunicación de los objetos por medio de interfaces


Los objetos también se comunican por medio de interfaces, los cuales describen un
conjunto de métodos que pueden llamarse sobre un objeto.

Generalidades en la programación Orientada a


Objetos
A lo largo del presente módulo, encontramos una serie de generalidades y anotaciones
importantes a tener en cuenta en el desarrollo de aplicaciones con el paradigma orientado
a objetos, con el objetivo de enfatizar en algunas prácticas comunes que los
programadores suelen realizar en la ingeniería de Software.

Generalidades en la programación Orientada a Objetos1. Resumen de las


asignaciones permitidas entre variables de la superclase y de la subclase2.
Clases finales3. Métodos finales:Composición de clasesMiembros de clase
staticVariables de instancia finalResumen de superclases y subclasesResumen
de modificadores de acceso@OverrideIngeniería de Software en la
herencia.Generalidades del PolimorfismoResumen de InterfacesClases y
métodos abstractos
1. Resumen de las asignaciones permitidas entre variables
de la superclase y de la subclase
Aunque un objeto de una subclase también es un objeto de su superclase, los dos son, sin
embargo, distintos. Los objetos de una subclase pueden tratarse como si fueran objetos de
la superclase. Sin embargo, como la subclase puede tener miembros adicionales que sólo
pertenezcan a ella, no se permite asignar una referencia de la superclase a una variable
de la subclase sin una conversión explícita; dicha asignación dejaría los miembros de la
subclase indefinidos para el objeto de la superclase.

Cuatro maneras de asignar referencias de una superclase y de una subclase a las


variables desús tipos:

1. Asignar una referencia de la superclase a una variable de ella es un proceso simple y


directo.
2. Asignar una referencia de la subclase a una variable de ella es un proceso simple y
directo.
3. Asignar una referencia de la subclase a una variable de la superclase es seguro, ya que el
objeto de la subclase es un objeto de su superclase. No obstante, la variable de la
superclase puede usarse para referirse sólo a los miembros de la superclase. Si este
código hace referencia a los miembros que pertenezcan sólo a la subclase, a través de la
variable de la superclase, el compilador reporta errores.
4. Tratar de asignar una referencia de la superclase a una variable de la subclase produce un
error de compilación. Para evitar este error, la referencia de la superclase debe convertirse
en forma explícita a un tipo de la subclase. En tiempo de ejecución, si el objeto que
menciona la referencia no es un objeto de la subclase, se producirá una excepción. Es
conveniente usar el operador i nstanceof para asegurar que dicha conversión se realice
sólo si el objeto es de la subclase.

2. Clases finales
Las clases final no pueden ser superclases. Una dase final que se declara como final no
puede ser una superclase (es decir, una clase no puede extender a una clase final). Todos
los métodos en una clase final son implícitamente final. La clase String es un ejemplo de
una clase final. Si pudiéramos crear una subclase de String , los objetos de esa subclase
podrían usarse en cualquier lugar en donde se esperaran objetos String. Como esta clase
no puede extenderse, lo que los programas que utilizan objetos String pueden depender
de la funcionalidad de los objetos String , según lo especificado en la API de java. Al
hacer laclase final también se evita que los programadores creen subclases que podrían
ignorar las restricciones de seguridad.

3. Métodos finales:
Los métodos final no se pueden sobrescribir. Un método final en una superclase no puede
sobrescribirse en una subclase; esto garantiza que todas las subclases directas e
indirectas en la jerarquía utilicen la implementación del método final. Los métodos que se
declaran como private son implícitamente final, ya que es imposible sobrescribirlos en
una subclase. Los métodos que se declaran como static también son implícitamente
final. La declaración de un método fi nal nunca puede cambiar, por lo cual todas las
subclases utilizan la misma implemen- tación del método, y las llamadas a los métodos fi
nal se resuelven en tiempo de compilación; a esto se le conoce como vinculación estática.
Composición de clases
Una clase puede tener referencias a objetos de otras clases como miembros. A dicha
capacidad se le conoce como composición y algunas veces como relación tiene un. Por
ejemplo, un objeto de la clase Reloj Alarma necesita saber la hora actual la hora en la que
se supone sonará su alarma, por lo que es razonable incluir dos referencias a objetos
Tiempo como miembros del objeto ReíojAlarma.

Miembros de clase static


Cada objeto tiene su propia copia de todas las variables de instancia de la clase. En
ciertos casos, sólo debe compartirse una copia de cierta variable entre todos los objetos de
una clase. En esos casos se utiliza un campo static (al cual se le conoce como una
variable de clase). Una variable static representa información en toda la clase: todos los
objetos de la clase comparten la misma pieza de datos. La declaración de una variable
static comienza con la palabra clave static.

Variables de instancia final


El principio del menor privilegio es fundamental para la buena ingeniería de software.
En el contexto de una aplicación, el principio establece que al código sólo se le debe
otorgar tanto privilegio y acceso como necesite para llevar a cabo su tarea designada, pero
no más. Esto hace a sus programas más robustos, al evitar que el código modifique por
accidente (o de manera intencional) los valores de las variables y haga llamadas a
métodos que no deben ser accesibles.

Resumen de superclases y subclases


A menudo, un objeto de una clase es un objeto de otra clase también. se listan abajo
varios ejemplos simples de superclases y subclases;

las superclases tienden a ser “más generales”, y las subclases “más específicas”. Por
ejemplo, un PrestamoAuto es un Préstamo, así como PrestamoMejoraCasa y
PréstamoHipotecario. Por ende, en Java se puede decir que la clase PrestamoAuto hereda
de la clase Préstamo. En este contexto, dicha clase es una superclase y la clase
PrestamoAuto es una subclase. Un PrestamoAuto es un tipo específico de Préstamo, pero
es incorrecto afirmar que todo Préstamo es un PrestamoAuto; el Préstamo podría ser
cualquier tipo de crédito.

Superclase Subclases
Estudiante EstudianteCraduado, EstudianteNoCraduado,
Figura Circulo, Triangulo, Rectángulo, Esfera, Cubo
Superclase Subclases
Préstamo PrestamoAutomovil, PrestamoMejoraCasa, PrestamoHipotecario
Empleado Docente, Administrativo, CuentaBancaria, CuentaDeCheques, CuentaDeAhorr

Resumen de modificadores de acceso


Los miembros public de una clase son accesibles en cualquier parte en donde el
programa tenga una referencia a un objeto de esa clase, o una de sus subclases. Los
miembros private de una clase son accesibles sólo dentro de la misma clase. El uso del
acceso protected ofrece un nivel intermedio de acceso entre public y private .

Los miembros protected de una superclase pueden ser utilizados por los miembros de esa
superclase, por los de sus subclases y por los de otras clases en el mismo paquete; los
miembros protected también tienen acceso a nivel de paquete.

Al declarar variables de instancia private (a diferencia de protected) en la superclase, se


permite que la implementación de la superclase para estas variables de instancia cambie
sin afectar las implementaciones de las subclases.

@Override
Consideraciones sobre la notación @Override

Cuando intentamos sobrescribir el método de una superclase, los errores comunes son:
asignar un nombre incorrecto al método de la subclase o utilizar el número o tipos
incorrectos de los parámetros en la lista de parámetros. Cada uno de estos problemas
crea una sobrecarga no intencional del método de la superclase.

Si después tratamos de llamar al método en un objeto de la subclase, se invoca la versión


de la superclase y se ignora la versión de la subclase; esto puede provocar ligeros errores
lógicos. Cuando el compilador encuentra un método declarado con @Override, compara la
firma del método con las firmas del método de la superclase. Si no hay una coincidencia
exacta, el compilador emite un mensaje de error, como "el método no sobrescribe o
implementa a un método de un supertipo".

Ingeniería de Software en la herencia.


 Al extender una clase, la nueva clase hereda los miembros de la superclase, aunque sus
miembros private están ocultos en la nueva clase. Podemos personalizar la nueva clase
para cumplir nuestras necesidades, mediante la inclusión de miembros adicionales y la
sobrescritura de miembros de la superclase.
 Para hacer esto, no es necesario que el programador de la subclase modifique el código
fuente de la superclase; ni siquiera necesita tener acceso al mismo. Java sólo requiere el
acceso al archivo .class de la superclase, para poder compilar y ejecutar cualquier
programa que utilice o extienda la superclase.
Generalidades del Polimorfismo
El polimorfismo nos permite “programar en forma general”, en vez de “programar en forma
específica.” En particular, nos permite escribir programas que procesen objetos que
compartan la misma superclase (ya sea de manera directa o indirecta) como si todos
fueran objetos de la superclase; esto puede simplificar la programación. Un ejemplo de
polimorfismo sería:

Cuadriláteros: Si laclase Rectángulo se deriva de laclase Cuadrilátero, entonces un objeto


Rectángulo es una versión más específica de un objeto Cuadri latero. Cualquier operación
(por ejemplo, calcular el perímetro o el área) que pueda realizarse en un objeto
Cuadrilátero también puede realizarse en un objeto Rectángulo. Estas operaciones
también pueden realizarse en otros objetos Cuadrilátero, como Cuadrado, Paral elogramo
y Trapezoi de. El polimorfismo ocurre cuando un programa invoca a un método a través de
una variable de la superclase Cuadri latero; en tiempo de ejecución, se hace una llamada a
la versión correcta del método de la subclase, con base en el tipo de la referencia
almacenada en la variable de la superclase. En la sección 10.3 veremos un ejemplo de
código simple, en el cual se ¡lustra este proceso.

Resumen de Interfaces
Una interfaz describe a un conjunto de métodos que pueden llamarse en un objeto, pero
no proporciona implementaciones concretas para todos ellos. Podemos declarar clases
que implementen a (es decir, que proporcionen implementaciones concretas para los
métodos de) una o más interfaces.

Cada método de una interfaz debe declararse en todas las clases que implementen a la
interfaz. Una vez que una clase implementa a una interfaz, todos los objetos de esa clase
tienen una relación es un con el tipo de la interfaz, y se garantiza que todos bs objetos de
la clase proporcionarán la funcionalidad descrita por la interfaz. Esto se aplica también
para todas las subclases de esa clase.

Clases y métodos abstractos


En algunos casos es conveniente declarar clases (conocidas como clase abstractas) para
las cuales el programador nunca creará instancias de objetos. Puesto que sólo se utilizan
como superclases en jerarquías de herencia, nos referimos a ellas como superclases
abstractas.

¿Cuál es su propósito?

El propósito de una clase abstracta es proporcionar una superclase apropiada, a partir de


la cual puedan heredar otras clases y, por ende, compartir un diseño común. Las clases
que pueden utilizarse para instanciar objetos se llaman clases concretas, las cuales
proporcionan implementaciones de cada método que declaran (algunas de las
implementaciones pueden heredarse). Por ejemplo, podríamos derivar las clases
concretas Circulo, Cuadrado y Triangulo de la superclase abstracta FiguraBidimensional

Uso de interfaces
Para utilizar una interfaz, la clase concreta debe específicar que implementa a esa interfaz
y debe declarar cada uno de sus métodos con la firma específicada en la declaración de
interfaz.

En la implementación de interfaces hacemos uso de la palabra reservada implements y el


nombre de la interfaz al final de la primera línea de la declaración de nuestra clase. Una
clase que no implementa todos los métodos de una interfaz es una clase abstracta, y debe
declararse como abstract . "Implementar una interfaz es como firmar un contrato con el
compilador que diga" : "Delararé todos los métodos especificados por la intgerfaz o
declararé mi clase como abstract "

Consejos con Interfaces


 Al declarar un método en una interfaz, escribirlo con uno que lo describa su propósito de
forma general, ya que podría implementarse por muchas clases no relacionadas.
 Es apropiado de acuerdo a las especificaciones de Java, es un estilo apropiado declarar
los métodos de una interfaz sin la palabra clave public y abstract ya que son
redundantes en la creación de los métodos de la interfaz.
 De manera similar las constantes deben declararse sin las palabras clave public, static y
final, ya que también son redundantes.
 Cuando un parámetro de un método se declara con un tipo de superclase o de interfaz, el
método procesa en forma polimórfica al objeto que recibe como argumento.
 Al utilizar una referencia a la superclase, se puede invocar de forma polimórfica a cualquier
método declarado en la superclase y sus superclases.

Interfaces y clases abstractas


Las interfaces se utilizan en vez de de una clase abstracta cuando no hay una
implementación predeterminada que heredar. Al igual que las clases public abstract , las
interfaces son comunmente de tipo public.

Prácticar en el módulo de Desarrollo la sección definida como Java: Interfaces

Das könnte Ihnen auch gefallen