zoukankan      html  css  js  c++  java
  • java 重写的学习

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

      

  • 相关阅读:
    Codevs 4633 [Mz]树链剖分练习
    Codevs 2460 == BZOJ 1036 树的统计
    洛谷 P1038 神经网络
    POJ 1062 昂贵的聘礼
    POJ 1459 Power Network
    POJ 1149 PIGS
    Codevs 1993 草地排水
    指针与引用
    江哥的DP题(G)
    江哥的DP题(F)
  • 原文地址:https://www.cnblogs.com/shuqingstudy/p/4722694.html
Copyright © 2011-2022 走看看