刚开始写东西,低调,来点简单的
重写与重载
重写
看一段代码
public class Picture {
void draw(Object obj) {
System.out.println("Super");
}
}
public class Person extends Picture {
public static void main(String[] args) {
Object obj = new Object();
String ob = new String();
Number obn = new Integer(0);
// Photo pi = new Photo();
Picture pi = new Photo();
pi.draw(ob);
pi.draw(obn);
pi.draw(obj);
}
}
class Photo extends Picture {
public void draw(String obj){
System.out.println("Sub-s");
}
public void draw(Number obj){
System.out.println("Sub-n");
}
// public void draw(Object obj){
// System.out.println("Sub-o");
// }
}
OK,看看打印了啥
Super
Super
Super
更改Class Photo
class Photo extends Picture {
public void draw(String obj){
System.out.println("Sub-s");
}
public void draw(Number obj){
System.out.println("Sub-n");
}
public void draw(Object obj){
System.out.println("Sub-o");
}
}
再来看看打印了啥
Sub-o
Sub-o
Sub-o
重载
更改Class Picture
public class Picture {
void draw(Number obj) {
System.out.println("Super");
}
}
Person 对象出错,改改就OK了
上面先放一边
看下面
public class Person extends Picture {
public static void main(String[] args) {
Object obj = new Object();
String ob = new String();
Number obn = new Integer(0);
Float obf = new Float(0.0);
Byte obd = new Byte("12");
Photo pi = new Photo();
// Picture pi = new Photo();
pi.draw(obj);
pi.draw(obn);
pi.draw(obf);
pi.draw(obd);
}
}
class Photo extends Picture {
public void draw(String obj){
System.out.println("Sub-s");
}
public void draw(Number obj){
System.out.println("Sub-n");
}
public void draw(Float obj){
System.out.println("Sub-f");
}
public void draw(Object obj){
System.out.println("Sub-o");
}
}
看打印
Sub-o
Sub-n
Sub-f
Sub-n
OK,结论就不写了