目录
方法重写(注意):
1、修饰符不能大于父类修饰符
2、方法名相同,参数列表相同
3、返回值类型:如果是基本数据类型,则是基本数据类型,jdk1.5之后
放宽限制,必须小于或等于父类的返回值类型。
4、子类可以重写父类的所有方法,除了父类的 private 和 final方法
5、父类中静态方法不能被子类覆盖为非静态方法
6、父类的非静态方法不能被子类覆盖为静态方法
7、同一个类中,只能重载,不能被覆盖
8、子类重写父类方法,只能在子类及子类的子类可以使用,父类的方法是没有改变的
set、get快捷方法:

创建构造方法的快捷方式:

父类
- package Overriding1;
-
- public class Pen {
-
- private String name; //姓名
- private int age; //年龄
- // 构造方法
- public Pen() {
- super();
- }
- public Pen(String name, int age) {
- super();
- this.name = name;
- this.age = age;
- }
- // set、get方法
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
-
- public void print(){
- System.out.println("姓名:"+name+"\t年龄:"+age);
- }
-
- }
子类
- package Overriding1;
-
- public class Dog extends Pen{
-
- private double weight; //体重
-
- // 空参构造方法
- public Dog() {
- super();
- }
- // 有参构造方法
- public Dog(String name, int age, double weight) {
- super(name, age);
- this.weight = weight;
- }
- // set、get方法
- public double getWeight() {
- return weight;
- }
-
- public void setWeight(double weight) {
- this.weight = weight;
- }
-
- // 方法重写
- public void print(){
- System.out.println("体重"+this.getWeight()+"斤");
- }
-
- }
测试类
- package Overriding1;
-
- public class Test {
-
- public static void main(String[] args) {
- // 创建Dog对象
- Dog dog = new Dog("小默",3,2.2);
- // 调用Dog对象里的重写方法
- dog.print();
-
- }
- }

运行结果是这样的,如何能把我们定义的全部显示出来呢?
super关键字,指代父类的属性或方法
super.方法名:指代父类的方法,
我们只需要在子类代码中加上这个就可以了:

运行结果:



重写可以输出更方便,输出想要的值。






