| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1016 人关注过本帖
标题:多态问题
只看楼主 加入收藏
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
收藏
 问题点数:0 回复次数:16 
多态问题

public abstract class Person {

public abstract String getDescription();
public String getName(){return null;}

}

---------------------------------------------------------------------------------

public class Employee extends Person
{
public Employee(String n,double s)
{

name=n; //error
salary=s;

}
public String getName()
{
return name; //error
}
public String getDescription()
{
return String.format("an employee with a salary of $%.2f",salary);
}
private double salary;
private name; //error
}

--------------------------------------------------------------------------------------------

public class Student extends Person
{
public Student(String n,String m)
{

name=n; //error
major=m;
}
public String getName()
{
return name; //error
}
public String getDescription()
{
return "a student majoring in"+major;
}
private String major;
private name; //error

}

----------------------------------------------------------------------------------------------

public class PersonTest {
public static void main(String[] args) {
Person [] people=new Person[2];
people[0]=new Employee("Harry Hacker",50000);
people[1]=new Student("Maria Morris","computer science");
for(Person p:people)
System.out.println(p.getName()+"."+p.getDescription());
}
}

为什么说我name错啊
我想实现多态!

[此贴子已经被作者于2006-11-11 12:41:37编辑过]

搜索更多相关主题的帖子: 多态 
2006-11-11 12:22
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
收藏
得分:0 

怎么没有人回帖啊


2006-11-11 12:58
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
收藏
得分:0 
随便给点建议啊 看法都可以啊

2006-11-11 12:58
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
你在超 类里面根本就没有定义name

可惜不是你,陪我到最后
2006-11-11 13:12
chengyihang
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-10-30
收藏
得分:0 
个人意见!

abstract class Person
{
public String name;
public abstract String getDescription();
public String getName(){return null;}

}


class Employee extends Person
{
public Employee(String n,double s)
{

name=n; //error
salary=s;

}
public String getName()
{
return name; //error
}
public String getDescription()
{
return String.format("an employee with a salary of $%.2f",salary);
}
private double salary;
private String sname; //error
}


class Student extends Person
{
public Student(String n,String m)
{

name=n; //error
major=m;
}
public String getName()
{
return name; //error
}
public String getDescription()
{
return "a student majoring in"+major;
}
private String major;
//error

}



public class test {

public static void main(String[] args) {
Person [] people=new Person[2];
people[0]=new Employee("Harry Hacker",50000);
people[1]=new Student("Maria Morris","computer science");
for(Person p:people)
System.out.println(p.getName()+"."+p.getDescription());
}
}
}

2006-11-11 13:16
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

类不应该这样设计的


可惜不是你,陪我到最后
2006-11-11 13:18
exit
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2006-10-18
收藏
得分:0 
方法重载 必须参数不同
2006-11-11 13:27
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
收藏
得分:0 

public class PersonTest {
public static void main(String[] args) {
Employee e=new Employee("chen");
Student s=new Student("sheng");
System.out.print(e.getName());
System.out.print(s.getName());
}
}


我把 PersonTest 改成这样 还是不行


2006-11-11 14:23
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
收藏
得分:0 
我想知道 抽象方法 和 多态有什么不同
抽象方法要在子类中重写而多态不也正是重写父类的方法吗
抽象又有什么意义呢

2006-11-11 14:26
mercyblitz
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-5-20
收藏
得分:0 
呵呵,怎么讲呢!
在抽象中是定义一种方式,而不是去具体怎么做!
比如,我们都是人,而人是个抽象的概念!人就有人的特征,具体到什么人就有不同的性格等等!
多态中父类有自己的实现方式,而子类终就不一定一样来实现!
就好比,儿子继承了父亲的一些特征,可能有不一致的地方!
2006-11-11 16:15
快速回复:多态问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017941 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved