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 add(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     } }

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

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();     } }

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

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

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

以上就是Java基础关于接口和抽象类的例子的详细内容,更多请关注其它相关文章!

任何业绩的质变都来自于量变的积累。

Java基础关于接口和抽象类的例子

相关文章:

你感兴趣的文章:

标签云: