超好玩的oop题目

题目内容:在一个公寓里,小红是一个学生,另外还有一个建筑工人,平时帮助别人换锁,有一个是医生。请用oop的思想用   代码实现小红家的情况!

 

Java参考答案:( 为了方便,我把所有的类都放在一个文件里面了)

 

public class Test{
   public static void main(String[] args){
      House h=new House();
      h.setStu(new Student("0001","小红",'女'));
      h.setDoc(new Doctor("丽丽",'女'));
      h.list(h.getStu());
      h.list(h.getDoc());
      Lock l=new Builder("老明",'男');
      h.list(l);
   }
}
class Person{
   private String name;
   private char sex;
   public void setName(String name){
     this.name=name;
   }
   public String getName(){
     return name;
   }
   public void work(){
     System.out.println("努力工作!");
   }
   public Person(String name,char sex){
     this.name=name;
     this.sex=sex;
   }
}
class Student extends Person{
   private String sid;
   public void setSid(String sid){
      this.sid=sid;
   }
   public String getSid(){
      return sid;
   }
   public void work(){ //使用继承
     System.out.println(getName()+"学习很用功!");
   }
   public Student(String sid,String name,char sex){
     super(name,sex);
     this.sid=sid;
   }
}
interface Lock{
   void job();
}
class Builder extends Person implements Lock{ //使用继承,和实现接口
   public void work(){
     System.out.println(getName()+"是建筑工人,工作挺累的!");
   }
   public void job(){
     System.out.println(getName()+"是开锁专家,为人民服务!");
   }
   public Builder(String name,char sex){
     super(name,sex);
   }
}
class Doctor extends Person{ //使用继承
   public void work(){
     System.out.println(getName()+"是一个医生,人们的白衣天使!");
   }
   public Doctor(String name,char sex){
     super(name,sex);
   }
}
class House{  //使用合成
   private Student stu;
   private Builder bui;
   private Doctor doc;
   public void list(Person per){
      per.work();
   }
   public void list(Lock lock){
      lock.job();
   }
   public void setStu(Student stu){
      this.stu=stu;
   }
   public Student getStu(){
     return stu;
   }
   public void setBui(Builder bui){
      this.bui=bui;
   }
   public Builder getBui(){
     return bui;
   }
   public void setDoc(Doctor doc){
      this.doc=doc;
   }
   public Doctor getDoc(){
     return doc;
   }
}

 

在C#中也是大同小异,因我我只装了jdk,没有装vs 所以在这里我就不演示C#代码了。­

   

   为了方便,我把所有的类都放在一个文件里面了

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值