本文全文转自:http://www.cnblogs.com/happyframework/p/3332243.html,非常感谢

Java中的重写规则比较灵活,具体如下:

  1. 除了 private 修饰之外的所有实例方法都可以重写,不需要显式的声明。
  2. 重写的方法为了显式的表达重写这一概念,使用 @Override进行注解。
  3. 重写的方法可以修改访问修饰符和返回类型,只要和父类的方法兼容(访问级别更高,返回类型更具体)。
  4. 可以使用final将某个方法标记为不可重写。
  5. 在构造方法中使用 super(xxx, xxx)调用父类构造方法,在常规实例方法中使用 super.method(xxx, xxx)调用父类方法。
  6. Java不支持覆盖(new)。
public class test {

/**
* @param args
*/
public static void main(String[] args) {
Animal animal = new Animal();
Animal dog = new Dog();

animal.say();
dog.say();

animal.eat(animal);
dog.eat(dog);

System.out.println(animal.info());
System.out.println(dog.info());
}
}

class Animal {
private String name = "Animal";

protected void say() {
System.out.println("Animal" + " " + this.name);
}

public void eat(Animal food) {
System.out.println("Animal eat " + food);
}

public Object info() {
return "Animal";
}

@Override
public String toString() {
return "Animal";
}
}

class Dog extends Animal {
private String name = "Dog";

@Override
public final void say() {
System.out.println("Dog" + " " + this.name);
}

@Override
public final void eat(Animal food) {
super.eat(food);

System.out.println("Dog eated");
}

@Override
public final String info() {
return "Dog";
}

@Override
public final String toString() {
return "Dog";
}
}

  

相关文章:

  • 2021-10-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-03
  • 2021-04-12
  • 2021-07-11
  • 2021-09-14
猜你喜欢
  • 2021-07-14
  • 2022-12-23
  • 2021-12-26
  • 2021-11-04
  • 2022-12-23
  • 2021-07-20
  • 2022-12-23
相关资源
相似解决方案