Java方法重写
如果在子类中创建与父类相同名称、相同返回值类型、相同参数列表的方法,但在方法体中的实现不同,以实现与父类不同的功能父类,这个方法被调用方法覆盖(),也称为方法覆盖。当父类中的方法不能满足子类的需求或子类有独特的功能时方法,需要方法覆盖。
子类可以根据需要定义自己的特定行为。它不仅继承了父类的函数名,还根据子类的需要重新实现了父类的方法,从而扩展和加强。
重写方法时,需要遵循以下规则:
还要注意以下几点:
例1 每一种动物都有名字和年龄的属性,但是它们喜欢吃的食物是不同的。比如狗喜欢吃骨头,猫喜欢吃鱼等等,所以每种动物的介绍方式都不一样。
下面写一个Java程序,在父类中定义()方法,在子类Cat中重写方法,实现cat的引入方法。父类的代码如下:
public class Animal { public String name; // 名字 public int age; // 年龄 public Animal(String name, int age) { this.name = name; this.age = age; } public String getInfo() { return "我叫" + name + ",今年" + age + "岁了。"; } }
子类Cat的代码如下:
public class Cat extends Animal { private String hobby; public Cat(String name, int age, String hobby) { super(name, age); this.hobby = hobby; } public String getInfo() { return "喵!大家好!我叫" + this.name + ",我今年" + this.age + "岁了,我爱吃" + hobby + "。"; } public static void main(String[] args) { Animal animal = new Cat("小白", 2, "鱼"); System.out.println(animal.getInfo()); } }
如上代码所示,类中定义了一个返回值类型和名称为()的方法,Cat类继承自该类,所以Cat类也包含与类中相同的()方法但是我们在Cat类中重新定义了一个()方法,即覆盖了父类中的()方法。
在main()方法中,创建了一个Cat类的对象方法,调用了()方法。输出如下:
喵!大家好!我叫小白,我今年2岁了,我爱吃鱼。
如果在子类中创建了成员变量,并且该变量的类型和名称与父类中的同名成员变量相同,我们称之为变量隐藏。
tags:
cat