Conhecimento básico de Java (análise superdetalhada, layout claro!): Herança de Java

Herança em Java é um mecanismo que significa que um objeto obtém todas as propriedades e comportamentos do objeto pai.

Herança em Java é: você pode criar novas classes com base nas classes existentes. Ao herdar de uma classe existente, você pode reutilizar os métodos e campos da classe pai ou pode adicionar novos métodos e campos à nova classe herdada.

A herança representa o relacionamento IS-A , também conhecido como relacionamento pai-filho.

Por que usar herança em java?

Para cobertura do método (para que ele possa atingir o polimorfismo do tempo de execução), melhore a capacidade de reutilização do código. Em Java, as subclasses podem herdar os métodos da classe pai sem a necessidade de reescrever os mesmos métodos. Mas às vezes a subclasse não deseja herdar o método da classe pai intacto, mas deseja fazer certas modificações, o que requer a reescrita do método (sobrescrita).

Sintaxe herdada de Java

class Subclass-name extends Superclass-name  
{
    
      
   //methods and fields  
}
Java

extendsA palavra-chave indica que uma nova classe está sendo criada derivando de uma classe existente. extendsO significado de " " é aumentar a função. Na terminologia Java, a classe herdada é chamada de pai ou superclasse, e a nova classe é chamada de filho ou subclasse.

Exemplo de herança Java

img

Conforme mostrado na figura acima, Programmeré uma subcategoria e Employeeuma supercategoria. É uma relação entre duas classes Programmer IS-A Employee. Representa Programmerum Employeetipo.

Consulte a implementação do código de amostra abaixo-

class Employee {
    
    
    float salary = 40000;
}

class Programmer extends Employee {
    
    
    int bonus = 10000;

    public static void main(String args[]) {
    
    
        Programmer p = new Programmer();
        System.out.println("Programmer salary is:" + p.salary);
        System.out.println("Bonus of Programmer is:" + p.bonus);
    }
}
Java

Execute o código acima para obter o seguinte resultado -

Programmer salary is:40000.0
Bonus of programmer is:10000
Java

No exemplo acima, o Programmerobjeto pode acessar sua própria classe e Employeeos campos da classe, o que melhora a capacidade de reutilização do código.

tipo de herança java

Com base nas classes, pode haver três tipos de herança em java: simples, multinível e hierárquica. Na programação Java, a herança múltipla e mista só pode ser suportada por meio de interfaces. Aprenderemos sobre a aplicação da interface de aprendizado em capítulos posteriores.

image-20200915234513157

Nota: As classes em java não suportam herança múltipla.

Quando uma classe estende várias classes, isso é chamado de herança múltipla. Por exemplo:

image-20200915234532142

(1). Exemplo de herança única

TestInheritance.javaCódigo de arquivo da seguinte forma -

class Animal {
    
    
    void eat() {
    
    
        System.out.println("eating...");
    }
}

class Dog extends Animal {
    
    
    void bark() {
    
    
        System.out.println("barking...");
    }
}

class TestInheritance {
    
    
    public static void main(String args[]) {
    
    
        Dog d = new Dog();
        d.bark();
        d.eat();
    }
}
Java

Execute o código acima para obter o seguinte resultado -

barking...
eating...
Java

(2). Exemplo de herança multinível

TestInheritance2.javaCódigo de arquivo da seguinte forma -

class Animal {
    
    
    void eat() {
    
    
        System.out.println("eating...");
    }
}

class Dog extends Animal {
    
    
    void bark() {
    
    
        System.out.println("barking...");
    }
}

class BabyDog extends Dog {
    
    
    void weep() {
    
    
        System.out.println("weeping...");
    }
}

class TestInheritance2 {
    
    
    public static void main(String args[]) {
    
    
        BabyDog d = new BabyDog();
        d.weep();
        d.bark();
        d.eat();
    }
}
Java

Execute o código acima para obter o seguinte resultado -

weeping...
barking...
eating...
Java

(3). Exemplo de herança multinível

TestInheritance3.javaCódigo de arquivo da seguinte forma -

class Animal {
    
    
    void eat() {
    
    
        System.out.println("eating...");
    }
}

class Dog extends Animal {
    
    
    void bark() {
    
    
        System.out.println("barking...");
    }
}

class Cat extends Animal {
    
    
    void meow() {
    
    
        System.out.println("meowing...");
    }
}

class TestInheritance3 {
    
    
    public static void main(String args[]) {
    
    
        Cat c = new Cat();
        c.meow();
        c.eat();
        // c.bark();//C.T.Error
    }
}
Java

Execute o código acima para obter o seguinte resultado -

meowing...
eating...
Java

Pergunta: Por que a herança múltipla não é compatível com Java?

Para reduzir a complexidade e simplificar a linguagem, a herança múltipla não é suportada em Java. Imagine um: A , B e C são três classes. C classe herda A e B classe. Se as classes A e B têm o mesmo método e o chamam de um objeto de subclasse, o método de chamada da classe A ou B será ambíguo.

Como os erros em tempo de compilação são melhores do que erros em tempo de execução, se você herdar 2uma classe, o java relatará erros em tempo de compilação. Portanto, não importa se existe o mesmo método na subclasse, haverá um erro de tempo de compilação relatado. Por exemplo, o código a seguir foi compilado incorretamente.

class A {
    
    
    void msg() {
    
    
        System.out.println("Hello");
    }
}

class B {
    
    
    void msg() {
    
    
        System.out.println("Welcome");
    }
}

class C extends A,B
{
    
    //suppose if it were  

 Public Static

    void main(String args[]) {
    
    
        C obj = new C();
        obj.msg();// Now which msg() method would be invoked?
    }
}
Java

Acho que você gosta

Origin blog.csdn.net/weixin_43314519/article/details/108612589
Recomendado
Clasificación