• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Java有关接口和抽象类的练习题

java 搞代码 4年前 (2022-01-09) 26次浏览 已收录 0个评论

下面小编就为大家带来一篇Java基础篇_有关接口和抽象类的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

呃,一定要理解之后自己敲!!!这几道题,使我进一步了解了接口和抽象类。

1.设计一个商品类 字段:

商品名称,重量,价格,配件数量,配件制造厂商(是数组,因为可能有多个制造厂商)

要求: 有构造函数

重写 toString 方法

重写 equals方法,进行两件商品的比较

package TT;import java.util.Arrays;public class G {  private int 重量;  private String 商品名称;  private int 价格;  private int 配件数量;  private String[] 配件制造厂商列表;  public G(int 重量, String 商品名称, int 价格, int 配件数量, String[] 配件制造厂商列表) {    super();    this.重量 = 重量;    this.商品名称 = 商品名称;    this.价格 = 价格;    this.配件数量 = 配件数量;    this.配件制造厂商列表 = 配件制造厂商列表;  }  @Override  public String toString() {    return "G [重量=" + 重量 + ", 商品名称=" + 商品名称 + ", 价格=" + 价格 + ", 配件数量="        + 配件数量 + ", 配件制造厂商列表=" + Arrays.toString(配件制造厂商列表) + "]";  }  public boolean equals(Object obj) {    if (this == obj) {      return true;    }    if (obj instanceof G) {      G goods = (G) obj;      if (this.重量 == goods.重量 && this.价格 == goods.价格          && this.商品名称.equals(goods.商品名称) && this.配件数量 == goods.配件数量) {        for (int i = 0; i < this.配件制造厂商列表.length; i++) {          if (this.配件制造厂商列表[i] != goods.配件制造厂商列表[i]) {            return false;          }        }        return true;      } else {        return false;      }    } else {      return false;    }  }  //将测试类和上面的放一块儿了  public static void main(String[] args) {    String[] 厂商列表1 = { "微软", "索尼", "三星" };    String[] 厂商列表2 = { "微软", "索尼", "三星" };    G g1 = new G(40, "电脑", 4000, 30, 厂商列表1);    G g2 = new G(40, "显示器", 4000, 30, 厂商列表2);    System.out.println(g1);    System.out.println(g2);    System.out.println(g1.equals(g2));  }}

2.设计一个抽象类,并演示它的使用 (三级)

package TT; //抽象类abstract class 数学老师标准{abstract void 讲数学();abstract int add(int a,int b);}  //第二级抽象类abstract class 普通数学老师标准 extends 数学老师标准{void 讲数学(){System.out.println("我能讲数学");}}//第三级抽象类class 真正的数学老师 extends 普通数学老师标准{ //注意这里能不能用abstract修饰,修饰了以后会对上下的影响//可以重写,也可以不重写void 讲数学(){System.out.println("我能讲高数");}int a<span>本文来源gaodai#ma#com搞*!代#%^码$网*</span>dd(int a,int b){return a+b;}}class Test{  public static void main(String[] args) {    数学老师标准 t1=new 真正的数学老师();    int result=t1.add(44, 4444);     System.out.println("计算结果是:"+result);    t1.讲数学();  }}

3.设计一个接口, 并设计一个实现类,实现这个接口

package TT;interface 银行标准{  int MONEY=9900000;  void 取钱();  void 存钱();}class 工商银行 implements 银行标准{  public void 取钱(){    System.out.println("钱进银行了");    }  @Override//全部方法都拿来  public void 存钱() {    System.out.println("钱出去了");    }  }public class Test {  public static void main(String[]args){     银行标准 bank=new 工商银行();     bank.取钱();     bank.存钱();          System.out.println("银行的老底是"+银行标准.MONEY);//此处银行标准用bank会报错,The static field 银行标准.MONEY should be accessed in a static way      }}

4.设计一个类,可以同时实现多个接口

package TT;interface 建筑标准 {  void kaimen();  void guanmen();}interface 银行标准 {  int MONEY = 9999;  void 取钱();  void 存钱();}class 工商银行 implements 银行标准,建筑标准 {    @Override  public void kaimen() {    System.out.println("我能开门");  }  @Override  public void guanmen() {    // TODO Auto-generated method stub    System.out.println("我能关门");  }  @Override  public void 取钱() {    // TODO Auto-generated method stub    System.out.println("我能取钱");  }  @Override  public void 存钱() {    // TODO Auto-generated method stub    System.out.println("我能存钱");  }}public class Test2 {  public static void main(String[] args) {    工商银行 bank = new 工商银行();    bank.取钱();    bank.存钱();    System.out.println("銀行的底是" + 工商银行.MONEY);    bank.kaimen();    bank.guanmen();  }}

5.设计一个类,在继承一个类的同时,实现其的两个接口(具体是什么接口自行设计)

package TT;interface 建筑标准{  void kaimen();  void guamen();}interface 银行标准{  int MONEY=900000; //接口中的变量,全相当于public static final 类型的  void 取钱();  void 存钱();}class 金融机构{  void 货币流通(){    System.out.println("货币流通");  }}class 工商银行 extends 金融机构 implements 银行标准, 建筑标准 {  public void 取钱() {    System.out.println("钱进了银行");  }  public void 存钱() {    System.out.println("钱从银行进行个人手里");    }  @Override  public void kaimen() {    System.out.println("银行有个大门,能打开");      }  @Override  public void guamen() {    System.out.println("银行有个铁门,关了以后谁都进不来了");      }}class Test4{  public static void main(String[] args) {    工商银行 bank=new 工商银行();     bank.取钱() ;    bank.存钱() ;    System.out.println("银行的底是"+bank.MONEY);        bank.kaimen();     bank.guamen();    bank.货币流通();    }}

最后的彩蛋彩蛋彩蛋!!!!

由于我在练习的时候将这几个例题放在了同一个TT包下,一共有5个文件。最后的最后,上面的后三个例子开始报错(比如报错:The type 银行标准 is already defined)。

啊啊啊啊,调试半个小时,都没弄好。后来静一下想,既然Eclipse提示XXX已经定义了,是不是只要在同一个包下,无论你建立多少个类,里面都不能重复定义相同类名文件呢?之后就开始Delete两个),果然,成功啦。仔细一想,既然同一个包下,公共类之间可以访问,这种排同性就是验证啊,也可以省下很多资源。

以上就是Java有关接口和抽象类的练习题的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Java有关接口和抽象类的练习题

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址