目录
方法重写(注意):
创建set、get和构造体的快捷方式:
代码:
toString重写:
toString重写快捷方式:
equals重写:
重写:
重写快捷方式:
方法重写(注意):
1、修饰符不能大于父类修饰符
2、方法名相同,参数列表相同
3、返回值类型:如果是基本数据类型,则是基本数据类型,jdk1.5之后
放宽限制,必须小于或等于父类的返回值类型。
4、子类可以重写父类的所有方法,除了父类的 private 和 final方法
5、父类中静态方法不能被子类覆盖为非静态方法
6、父类的非静态方法不能被子类覆盖为静态方法
7、同一个类中,只能重载,不能被覆盖
8、子类重写父类方法,只能在子类及子类的子类可以使用,父类的方法是没有改变的
创建set、get和构造体的快捷方式:
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.方法名:指代父类的方法,
我们只需要在子类代码中加上这个就可以了:
运行结果:
toString重写:
重写可以输出更方便,输出想要的值。
toString重写快捷方式:
equals重写:
重写:
重写快捷方式:



