面向对象 - 重写
方法的重写:父类对象的方法其实主要体现通用性,无法在特殊的场合下使用
如果子类对象需要在特殊场合下使用,那么就需要重写方法的逻辑,这个操作在Java中称之为方法的重写
这里的重写并不意味着父类的方法被覆盖掉,只是在当前场合不适用,如果使用super关键字还是可以访问
方法的重写要求子类的方法和父类的方法,方法名相同,返回值类型相同,参数列表相同
Child15 child = new Child15();
child.test();
}
}
class Parent15 {
String name = "zhangsan";
void test() {
System.out.println("parent test...");
}
}
class Child15 extends Parent15 {
String name = "lisi";
void test() {
// System.out.println(super.name);
// System.out.println(this.name);
super.test();
System.out.println("child test...");
}
}
CCC ddd = new DDD();
// 一个对象能使用什么方法,取决于引用变量的类型
// 一个对象能使用什么属性,取决于引用变量的类型
// 一个对象的方法具体的使用(直接或间接)是需要看具体的对象的
// 一个对象的属性具体的使用是不需要看具体的对象的,属性在哪里声明就在哪里使用
System.out.println(ddd.sum());
}
}
class CCC {
int i = 10;
int sum() {
return getI() + 10 ;
}
int getI() {
return i;
}
}
class DDD extends CCC {
int i = 20;
// int sum() {
// return i + 20 ;
// }
int getI() {
return i;
}
}
-------------------
30