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());
}ide
/**
* @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方法。
}
}this
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;
}
}繼承