【35】java里的抽象类

 1 abstract class Instrument {//抽象类
2 int i;
3 public abstract void play();
4 public String what(){
5 return "Instrument";
6 }
7 public abstract void adjust();
8 }
9
10 class Wind extends Instrument{
11 public void play(){
12 System.out.println("Wind.play()");
13 }
14 public String what(){
15 return "Wind";
16 }
17 public void adjust(){
18
19 }
20 }
21
22 class Percussion extends Instrument{
23 public void play(){
24 System.out.println("Percussion.play()");
25 }
26 public String what(){
27 return "Percussion";
28 }
29 public void adjust(){
30
31 }
32 }
33
34 class Stringed extends Instrument{
35 public void play(){
36 System.out.println("Stringed.play()");
37 }
38 public String what(){
39 return "Stringed";
40 }
41 public void adjust(){
42
43 }
44 }
45
46 class Brass extends Instrument{
47 public void play(){
48 System.out.println("Brass.play()");
49 }
50 public String what(){
51 return "Brass";
52 }
53 public void adjust(){
54
55 }
56 }
57
58 class WoodWind extends Instrument{
59 public void play(){
60 System.out.println("WoodWind.play()");
61 }
62 public String what(){
63 return "WoodWind";
64 }
65 public void adjust(){
66
67 }
68 }

抽象方法的定义形式为:abstract void func();

包含了抽象方法的类就是抽象类,当一个类包含一个或多个抽象方法时,该类就必须明确指定为abstract,不然编译器为报错。

抽象类是不能实例化的,即不能创建抽象类的对象。

如果从一个抽象类继承,子类就必须实现其抽象基类里的所有抽象方法。如果不这样做,那么子类也势必是一个抽象类,且其定义前也要添加abstract关键字。

public class Music {

static void tune(Instrument i){
i.play();
}

static void tuneAll(Instrument[] is){
for(int i = 0;i < is.length;++i){
tune(is[i]);
}
}
/**
*
@param args
*/
public static void main(String[] args) {
Instrument[] someInstruments = new Instrument[5];
int i = 0;

someInstruments[i++] = new Wind();
someInstruments[i++] = new Percussion();
someInstruments[i++] = new Stringed();
someInstruments[i++] = new Brass();
someInstruments[i++] = new WoodWind();

tuneAll(someInstruments);
}
}

输出结果为:

Wind.play()
Percussion.play()
Stringed.play()
Brass.play()
WoodWind.play()

转载于:https://www.cnblogs.com/Marstar/archive/2012/03/22/2411215.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值