为了账号安全,请及时绑定邮箱和手机立即绑定

作业的实现

public abstract class Human {
    public abstract void speak();
}
————————————————————————————————————
public class Chinese extends Human {
    private String name="张三";
    public Chinese(String name){
        this.name=name;
    }
    
    public String getName() {
        return name;
    }
    public void speak() {
        System.out.println(name+"说中国话。");
    }
}
————————————————————————————————————
public class American extends Human {
    private String name="Jack";
    
    public American(String name){
        this.name=name;
    }
    public String getName() {
        return name;
    }
    public void speak() {
        System.out.println(name+" speaks English.");
    }
}
————————————————————————————————————
public class Teest {
    public static void main(String[] args) {
        Human chi=new Chinese("李四");
        Human ame=new American("Louise");
        chi.speak();
        ame.speak();
    }
}


正在回答

4 回答

李四说中国话。

Jack speaks English.

1 回复 有任何疑惑可以回复我~
#1

七九九 提问者

Louise speaks English.
2016-02-12 回复 有任何疑惑可以回复我~
#2

老实得很 回复 七九九 提问者

我想问一下啊,您的编程中,构造方法中的this.name应该指的是父类中的属性,但父类是抽象类,并没有定义属性,这是什么回事
2016-04-13 回复 有任何疑惑可以回复我~
#3

老实得很 回复 老实得很

搞错了,this.name指的是当前对象的属性
2016-04-13 回复 有任何疑惑可以回复我~

getName 好像没用到?

0 回复 有任何疑惑可以回复我~

李四讲的中国话 

Louise Speaks English

1 回复 有任何疑惑可以回复我~
为何不用代码格式化
0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530841    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

作业的实现

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号