"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso acessar os métodos de subclasse de uma variável de superclasse em Java?

Como posso acessar os métodos de subclasse de uma variável de superclasse em Java?

Postado em 2025-03-24
Navegar:635

How Can I Access Subclass Methods from a Superclass Variable in Java?

acessando métodos de subclass de superclass

na programação orientada ao objeto, a herança permite que as classes herdem propriedades e comportamentos de suas classes parentais. No entanto, ao acessar métodos de subclasses de uma variável de superclasse, algumas limitações ocorrem. ... } classe pública Cat estende o PET { cor de corda privada; public string getColor () {...} } classe pública Kennel { public static void main (string [] args) { Pet Cat = New Cat ("Feline", 12, "Orange"); cat.getColor (); // Erro do compilador: getColor () não definido no PET } }

Na classe Kennel, quando um objeto CAT é atribuído a uma variável PET, apenas os membros definidos no PET estão acessíveis. Isso inclui métodos como getName () e getage (), mas não getColor ().

abstract public class Pet {
    ...
}

public class Cat extends Pet {
    private String color;
    public String getColor() { ... }
}

public class Kennel {
    public static void main(String[] args) {
        Pet cat = new Cat("Feline", 12, "Orange");
        cat.getColor(); // Compiler error: getColor() not defined in Pet
    }
}

1. Declare a variável como subclasse:

Declare a variável como a subclasse específica: cat gat = new Cat ("Feline", 12, "Orange"); cat.getColor (); // válido, getColor () é definido em cat

2. Variável de elenco para a subclasse:
Cat cat = new Cat("Feline", 12, "Orange");
cat.getColor(); // Valid, getColor() is defined in Cat

Faça a variável para uma subclasse conhecida ou esperada: pet gat = new Cat ("Feline", 12, "Orange"); ((Gato) gato) .getColor (); // válido, getColor () é acessível via Casting

Exemplo de implementação:
Cat cat = new Cat("Feline", 12, "Orange");
cat.getColor(); // Valid, getColor() is defined in Cat

aqui está uma versão corrigida da classe Kennel: classe pública Kennel { public static void main (string [] args) { Gato gato = novo gato ("felino", 12, "laranja"); System.out.println ("cor de gato:" cat.getColor ()); } }

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3