public Class Parents {
public void print() {
System.out.println(“parents”);
}
}
/**
* 定义两个派生类
*/
public Class Father extends Parents {
public void print() {
System.out.println(“father”);
}
}
public Class Mother extends Parents {
public void print() {
System.out.println(“mother”);
}
}
/**
* 测试输出结果的类
*/
public Class Test {
public void find(Parents p) {
p.print();
}
public static void main(String[] args) {
Test t = new Test();
Father f = new Father();
Mother m = new Mother();
t.find(f);
t.find(m);
}
}
public void print() {
System.out.println(“parents”);
}
}
/**
* 定义两个派生类
*/
public Class Father extends Parents {
public void print() {
System.out.println(“father”);
}
}
public Class Mother extends Parents {
public void print() {
System.out.println(“mother”);
}
}
/**
* 测试输出结果的类
*/
public Class Test {
public void find(Parents p) {
p.print();
}
public static void main(String[] args) {
Test t = new Test();
Father f = new Father();
Mother m = new Mother();
t.find(f);
t.find(m);
}
}
--------- 开始 -------------
father
mother
--------- 结束 -------------不明白你说的“java的多态 的父类引用指向子类对象??”是个什么问题。一个对象 是哪个类的实例,就会调用哪个类的方法。
比如在这个例子中,
Father f = new Father();
这个 f 就是 Father类的实例,而不是Parent类的实例,
因此 t.find(f);
会调用
public void find(Parents p) {
p.print();
}
这个方法。在该方法的运行中, p 应该是 Father类的实例,而不是Parent类的实例,
因此 p.print();
得到的结果,就是 Father类中的print方法。
不知道你明白了没有。两年来我在java版上的第一帖。最后给LZ的忠告:别有问题就问!多动脑子!多运行! 解决问题的时间更快!还锻炼了动手能力。
--------- 开始 -------------
father
mother
--------- 结束 -------------不明白你说的“java的多态 的父类引用指向子类对象??”是个什么问题。一个对象 是哪个类的实例,就会调用哪个类的方法。
比如在这个例子中,
Father f = new Father();
这个 f 就是 Father类的实例,而不是Parent类的实例,
因此 t.find(f);
会调用
public void find(Parents p) {
p.print();
}
这个方法。在该方法的运行中, p 应该是 Father类的实例,而不是Parent类的实例,
因此 p.print();
得到的结果,就是 Father类中的print方法。
不知道你明白了没有。两年来我在java版上的第一帖。最后给LZ的忠告:别有问题就问!多动脑子!多运行! 解决问题的时间更快!还锻炼了动手能力。
}
class B extends A {}
public class Test{
public static void main(String[] args) {
A a = new B();
}
}o了。。
对Java多态性综合运用的探讨
http://blog.csdn.net/yirentianran/archive/2008/04/25/2327349.aspx
楼主【yuyeyi】截止到2008-08-03 09:32:12的历史汇总数据(不包括此帖):
发帖的总数量:6 发帖的总分数:150 每贴平均分数:25
回帖的总数量:5 得分贴总数量:3 回帖的得分率:60%
结贴的总数量:6 结贴的总分数:150
无满意结贴数:1 无满意结贴分:30
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:16.67 % 无满意结分率:20.00 %
敬礼!
取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=yuyeyi
father
mother
--------- 结束 ------------- 不明白你说的“java的多态 的父类引用指向子类对象??”是个什么问题。 一个对象 是哪个类的实例,就会调用哪个类的方法。
比如在这个例子中,
Father f = new Father();
这个 f 就是 Father类的实例,而不是Parent类的实例,
因此 t.find(f);
会调用
public void find(Parents p) {
p.print();
}
这个方法。在该方法的运行中, p 应该是 Father类的实例,而不是Parent类的实例,
因此 p.print();
得到的结果,就是 Father类中的print方法。
private char sex;
public human(char sex){
this.sex=sex;
}
public void setSex(char sex){
this.sex=sex;
}
public char getSex(){
return sex;
}
}
class man extends human{
public man(){
super('男');
}
}class woman extends human{
public woman(){
super('女');
}
}
class test{
public static void main(String []args){
human w=new woman();
human m=new man();
System.out.println("the human is "+w.getSex());
System.out.println("the human is "+m.getSex());
}
}结果:
the human is 女
the human is 男