package com.hspedu.testoverride_; public class TestOverride_ { public static void main(String[] args) { // 测试重写override /** * 重写override:返回类型、方法名、形参都必须和父类一样 * 注意:访问权限修饰符,子类重写的方法 >= 父类的被重写方法 * public > protected > 默认 > private */ Cat cat = new Cat(); cat.eat("小白"); } } class Animal { private String name; protected void eat(String name) { System.out.println(name + "在吃饭.."); } } class Cat extends Animal { private String name; @Override public void eat(String name) { System.out.println(name + "在吃鱼.."); } }
方法重写override和方法重载overload的区别:
重写override是在继承关系中:1、父类和子类的方法名和形参必须一致;2、返回类型一致,或者子类重写方法的返回类型是父类方法返回类型的子类;3、重写方法的访问权限修饰符 >= 父类被重写方法的访问权限修饰符;
重载overload是在同一个类中:1、重载的方法名必须一样;2、形参不同;3、返回类型和访问修饰符无要求。