1. Herança de classe
class Animal{
String name; //定义name属性
//定义动物叫的方法
void shout(){
System.out.println("动物发出叫声");
}
}
//定义Dog类继承Animal类
class Dog extends Animal{
//Dog继承Animal,extends为继承的关键词
//定义一个打印name的方法
public void printName(){
System.out.println("name="+name);
}
}
//定义测试分
public class Demo01 {
public static void main(String[] args) {
Dog dog = new Dog();
dog.name = "沙皮狗";
dog.printName();
dog.shout();
}
}
Nota:
- As classes suportam apenas herança única, herança múltipla não é permitida, ou seja, uma classe pode ter apenas uma classe pai direta.
class A()
class B()
class C extends A,B() //C类不可以同时继承两个父类
- Várias classes podem herdar uma classe pai.
- Vários níveis de herança são permitidos.
- Subclasse e classe pai são conceitos relativos, o que significa que embora uma classe seja uma classe pai, ela também pode ser uma subclasse de outra classe.
2. Substitua o método pai
class Animal{
String name; //定义name属性
//定义动物叫的方法
void shout(){
System.out.println("动物发出叫声");
}
}
//定义Dog类继承Animal类
class Dog extends Animal{
//Dog继承Animal,extends为继承的关键词
//定义一个打印name的方法
void shout(){
System.out.println("bark...bark...");
}
}
public class Demo01 {
public static void main(String[] args) {
Dog dog = new Dog(); //重写Dog类的是咧对象
dog.shout(); //调用dog重写的shout()方法
}
}
Nota:
- A subclasse herdará automaticamente os métodos da classe pai, mas às vezes o método herdado precisa ser modificado na subclasse, ou seja, o método da classe pai é reescrito.
- O método sobrescrito na subclasse precisa ter o mesmo nome de método, lista de parâmetros e tipo de retorno que o método sobrescrito da classe pai.
- Quando uma subclasse substitui um método da classe pai, ela não pode usar permissões de acesso mais restritivas do que o método substituído na classe pai.
3.super palavra-chave
为了解决:当子类重写父类的方法后,子类对象将无法访问父类被重写的方法。
- Use a palavra-chave super para chamar as variáveis de membro e variáveis de membro da classe pai
super。成员变量
super,成员方法([参数1,参数2...])