Criando uma hierarquia de vários níveis

Hierarquias de classes múltiplas:

Uma subclasse pode ser usada como superclasse de outra, formando uma hierarquia de múltiplos níveis.
Uma subclasse herda todas as características de suas superclasses. Por exemplo, a classe C herda de B, que herda de…


This content originally appeared on DEV Community and was authored by Java para Iniciantes (Oracle)

Hierarquias de classes múltiplas:

  • Uma subclasse pode ser usada como superclasse de outra, formando uma hierarquia de múltiplos níveis.
  • Uma subclasse herda todas as características de suas superclasses. Por exemplo, a classe C herda de B, que herda de A, então C herda tanto de A quanto de B.

Exemplo de hierarquia:
O exemplo envolve três classes:
TwoDShape (classe base).
Triangle (subclasse de TwoDShape).
ColorTriangle (subclasse de Triangle).
A subclasse mais específica (ColorTriangle) herda atributos e métodos de todas as superclasses anteriores.

Classe TwoDShape:
Representa uma forma 2D com width (largura) e height (altura).
Construtores padrão, parametrizado e para dimensões iguais.
Métodos acessadores (getters e setters) para manipular largura e altura.
Método showDim() exibe as dimensões.

Classe Triangle:
Estende TwoDShape e adiciona um atributo style (estilo do triângulo).
Construtores: padrão, parametrizado (usando super() para inicializar a superclasse) e com um único argumento.

Métodos:
area() calcula a área do triângulo.
showStyle() exibe o estilo do triângulo.

Classe ColorTriangle:
Estende Triangle e adiciona um atributo color (cor do triângulo).
Construtor recebe cor, estilo, largura e altura.

Métodos:
getColor() retorna a cor.
showColor() exibe a cor.
Programa de exemplo Shapes6:

Cria dois objetos ColorTriangle com diferentes estilos e cores.
Exibe informações sobre estilo, dimensões, cor e área de cada triângulo.

class TwoDShape {
    private double width;
    private double height;

    // Construtor padrão
    TwoDShape() {
        width = height = 0.0;
    }

    // Construtor parametrizado
    TwoDShape(double w, double h) {
        width = w;
        height = h;
    }

    // Construtor com dimensões iguais
    TwoDShape(double x) {
        width = height = x;
    }

    double getWidth() { return width; }
    double getHeight() { return height; }
    void setWidth(double w) { width = w; }
    void setHeight(double h) { height = h; }

    void showDim() {
        System.out.println("Width and height are " + width + " and " + height);
    }
}

class Triangle extends TwoDShape {
    private String style;

    // Construtor padrão
    Triangle() {
        super();
        style = "none";
    }

    Triangle(String s, double w, double h) {
        super(w, h);  // Chama o construtor da superclasse
        style = s;
    }

    Triangle(double x) {
        super(x);  // Chama o construtor da superclasse
        style = "filled";
    }

    double area() {
        return getWidth() * getHeight() / 2;
    }

    void showStyle() {
        System.out.println("Triangle is " + style);
    }
}

class ColorTriangle extends Triangle {
    private String color;

    ColorTriangle(String c, String s, double w, double h) {
        super(s, w, h);  // Chama o construtor da superclasse
        color = c;
    }

    String getColor() { return color; }

    void showColor() {
        System.out.println("Color is " + color);
    }
}

class Shapes6 {
    public static void main(String args[]) {
        ColorTriangle t1 = new ColorTriangle("Blue", "outlined", 8.0, 12.0);
        ColorTriangle t2 = new ColorTriangle("Red", "filled", 2.0, 2.0);

        System.out.println("Info for t1: ");
        t1.showStyle();
        t1.showDim();
        t1.showColor();
        System.out.println("Area is " + t1.area());
        System.out.println();

        System.out.println("Info for t2: ");
        t2.showStyle();
        t2.showDim();
        t2.showColor();
        System.out.println("Area is " + t2.area());
    }
}

Principais pontos sobre herança e uso de super():
A classe ColorTriangle herda de Triangle, que herda de TwoDShape, reutilizando o código dessas classes.
O uso de super() permite chamar o construtor da superclasse diretamente.


This content originally appeared on DEV Community and was authored by Java para Iniciantes (Oracle)


Print Share Comment Cite Upload Translate Updates
APA

Java para Iniciantes (Oracle) | Sciencx (2024-09-14T18:10:29+00:00) Criando uma hierarquia de vários níveis. Retrieved from https://www.scien.cx/2024/09/14/criando-uma-hierarquia-de-varios-niveis/

MLA
" » Criando uma hierarquia de vários níveis." Java para Iniciantes (Oracle) | Sciencx - Saturday September 14, 2024, https://www.scien.cx/2024/09/14/criando-uma-hierarquia-de-varios-niveis/
HARVARD
Java para Iniciantes (Oracle) | Sciencx Saturday September 14, 2024 » Criando uma hierarquia de vários níveis., viewed ,<https://www.scien.cx/2024/09/14/criando-uma-hierarquia-de-varios-niveis/>
VANCOUVER
Java para Iniciantes (Oracle) | Sciencx - » Criando uma hierarquia de vários níveis. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/09/14/criando-uma-hierarquia-de-varios-niveis/
CHICAGO
" » Criando uma hierarquia de vários níveis." Java para Iniciantes (Oracle) | Sciencx - Accessed . https://www.scien.cx/2024/09/14/criando-uma-hierarquia-de-varios-niveis/
IEEE
" » Criando uma hierarquia de vários níveis." Java para Iniciantes (Oracle) | Sciencx [Online]. Available: https://www.scien.cx/2024/09/14/criando-uma-hierarquia-de-varios-niveis/. [Accessed: ]
rf:citation
» Criando uma hierarquia de vários níveis | Java para Iniciantes (Oracle) | Sciencx | https://www.scien.cx/2024/09/14/criando-uma-hierarquia-de-varios-niveis/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.