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

      

  • 相关阅读:
    Java 流(Stream)、文件(File)和IO
    Java集合笔记
    希尔排序
    多线程
    查找算法
    快速排序
    leetcode题解58
    9.回文数
    SonarQube代码质量管理平台安装及使用
    用GitBlit 和 VS GitSourceControlProvider 搭建基于 Http(s) 的 Git 工作平台
  • 原文地址:https://www.cnblogs.com/shuqingstudy/p/4722694.html
Copyright © 2011-2022 走看看