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";
    }
    }
    

      

  • 相关阅读:
    apply call bind方法的区别和含义
    html头部meta标签
    语义化标签
    “文件名和url路径名”命名要点以及大小写问题
    BMP GIF PNG JPG等图片格式的区别和适用情况
    前端页面的性能优化
    js阻止默认事件,如a标签跳转和事件冒泡
    散列碰撞问题的解决——开链法(拉链法)
    substring()方法
    对学生成绩进行散列
  • 原文地址:https://www.cnblogs.com/shuqingstudy/p/4722694.html
Copyright © 2011-2022 走看看