java的多态(一)
package grammar;
//定义好父类
public class Parent {
//一个属性
private String name = "Parent";
//
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//一个方法
public void doSomething(Parent parent) {
System.out.println(parent.getName());
System.out.println(parent.getClass());
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Parent parent=new Parent();
// 传递A的引用,则调用的是Son1类的getName方法
parent.doSomething(new Son1());
// 传递A的引用,则调用的是Son2类的getName方法
parent.doSomething(new Son2());
/* Son1
class grammar.Son1
Son2
class grammar.Son2
*/
//由此可见,父类的doSomething方法多态地调用了我们传递的对象的getName方法,而不是Parent类本身的getName方法。
}
}
class Son1 extends Parent {
private String name = "Son1";
//继承
public String getName() {
return name;
}
}
class Son2 extends Parent {
private String name = "Son2";
//继承
public String getName() {
return name;
}
}
欢迎关注公众号:Java后端技术全栈