码迷,mamicode.com
首页 > 编程语言 > 详细

java 重写的学习

时间:2015-08-12 01:13:13      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

本文全文转自: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";
}
}

  

java 重写的学习

标签:

原文地址:http://www.cnblogs.com/shuqingstudy/p/4722694.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!