Reescrever
Crie uma subclasse com o mesmo nome da classe pai, o mesmo tipo de valor de retorno e o mesmo método, mas a implementação no corpo do método é diferente para obter funções diferentes da classe pai.
alt + insert: override
Re significado
Se o pai é um animal, existe um método chamado animal latido, mas a criança é um cachorro. Usar o latido animal dos pais não pode expressar as características de um cachorro, então precisa ser reescrito como latido. A subclasse reescreve o método da classe pai de acordo com suas próprias necessidades.
Métodos estáticos e métodos não estáticos são muito diferentes!
Portanto, não adicione estático em circunstâncias normais
- Método estático: a chamada do método está relacionada apenas ao tipo de dados definido à esquerda
public class A extends B
{
//override 重写
public static void text (){
System.out.println("A>哈哈大笑");
}
//重写:都是方法的重写,和属性无关
public class B
{
//我们使用static 两边都要使用static
public static void test(){
System.out.println("B>哈哈大笑");
}
import com.oop.Demo02.A;
import com.oop.Demo02.B;
public class Application
{
public static void main (String[] args){
A a = new A();
a.text();//A类的静态方法
//向上转型
/*
父类与子类都加static时各种输出各自的方法
一个A>哈哈大笑,一个B>哈哈大笑
取消static后 子类就重新了父类的方法只输出A>哈哈大笑
*/
//父类的引用指向了子类
B b = new A();//子类重写了父类的方法
b.test();//B类的静态方法
}
- Método não estático
public void text (){
System.out.println("A>哈哈大笑");
}
public void test(){
System.out.println("B>哈哈大笑");
}
Resumindo
1. Reescreva o método de herdar e reaparecer a subclasse, como parentesco consangüíneo, mas o filho pode ter mutações genéticas.
1. O nome do método deve ser o mesmo
2. A lista de parâmetros deve ser a mesma
3. Modificador: o escopo pode ser expandido, mas não reduzido
público> protegido> padrão> privado ,
Geralmente usamos público para reescrever.
4. A exceção lançada: o escopo pode ser reduzido, mas não pode ser expandido: ClassNotFoundException -> Exception (grande)
Substituir: o método da subclasse deve ser o mesmo da classe pai: o corpo do método é diferente.