继承,多态性,抽象类,接口例子

今天在社区里有人要源代码,我有空就写了个,感觉不是很好,但感觉不是很好 ,以后有时间还是得经常温习一下这些概念性的东西,虽然自己经常用,但要专门写代码演示的时候还真有点晕
AbsDoor.java //门的抽象类
Door.java //门,也是运行类
IRing.java //门铃的接口
Ring.java //门铃
Sounds.java //音乐
/**
@author infon
* 2007-5-17
*/

public   class  Door  extends  AbsDoor  {
public Door(){
height
=2.2f;
width
=1.2f;
ring
=new Ring();
}

/*
* 重写
* (non-Javadoc)
* @see AbsDoor#open()
*/

@Override
void open() {
// TODO Auto-generated method stub
System.out.println("主人听到门铃,去开门");
System.out.println(
"开门");
}


/**
@param args
*/

public static void main(String[] args) {
System.out.println(
"按门铃不说话的演示:");
Door door1
=new Door();
door1.ring.press();
Sounds sounds1
=door1.ring.notice();
sounds1.sing();
door1.open();
System.out.println();
System.out.println(
"按门铃大喊的演示:");
Door door2
=new Door();
door2.ring.press(
"我是小梅,找你有急事,快点来开门");
Sounds sounds2
=door2.ring.notice();
sounds2.sing();
door2.open();
}

}


/**
@author infon
* 2007-5-17
*/

public   abstract   class  AbsDoor  {
float height;
float width;
IRing ring;
abstract void open();
}



public   interface  IRing  {
//敲门时不出声
void press();
//重载
//有人按门铃,然后在门铃上喊,门铃能把声音传进屋子里
void press(String calling);
//传送声音至主人
Sounds notice();
}



public   class  Ring  implements  IRing  {

Sounds sounds;

public Sounds notice() {
// TODO Auto-generated method stub
return sounds;
}


/**
* 重写
*/

public void press() {
// TODO Auto-generated method stub
System.out.println("客人敲门");
sounds
=new Sounds();
}


/**
* 重写
@param calling
*/

public void press(String calling) {
// TODO Auto-generated method stub
System.out.println("敲门");
sounds
=new Sounds(calling);
}

}


import  java.util.Random;

public   class  Sounds  {
String words[] 
= new String[] "主人,有客来了,请开门""美女来了,快开门呀""小兔子乖乖,把门儿开开",
"开门,开门,快点来开门""快点把门打开吧,外面好冷" }
;
String word;
public Sounds() {
Random rand 
= new Random();
int index = Math.abs(rand.nextInt()) % 5;
word
=words[index];
}


public Sounds(String word) {
this.word=word;
}

/**
* 打印铃声
*/

public void sing() {
System.out.println(
"门铃响:"+word);
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值