0

0

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

怪我咯

怪我咯

发布时间:2017-06-26 11:50:52

|

1810人浏览过

|

来源于php中文网

原创

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

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

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

要求: 有构造函数

重写 toString 方法

立即学习Java免费学习笔记(深入)”;

重写 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.设计一个抽象类,并演示它的使用 (三级)

Pebblely
Pebblely

AI产品图精美背景添加

下载
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速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
1688阿里巴巴货源平台入口与批发采购指南
1688阿里巴巴货源平台入口与批发采购指南

本专题整理了1688阿里巴巴批发进货平台的最新入口地址与在线采购指南,帮助用户快速找到官方网站入口,了解如何进行批发采购、货源选择以及厂家直销等功能,提升采购效率与平台使用体验。

21

2026.02.06

快手网页版入口与电脑端使用指南 快手官方短视频观看入口
快手网页版入口与电脑端使用指南 快手官方短视频观看入口

本专题汇总了快手网页版的最新入口地址和电脑版使用方法,详细提供快手官网直接访问链接、网页端操作教程,以及如何无需下载安装直接观看短视频的方式,帮助用户轻松浏览和观看快手短视频内容。

0

2026.02.06

C# 多线程与异步编程
C# 多线程与异步编程

本专题深入讲解 C# 中多线程与异步编程的核心概念与实战技巧,包括线程池管理、Task 类的使用、async/await 异步编程模式、并发控制与线程同步、死锁与竞态条件的解决方案。通过实际项目,帮助开发者掌握 如何在 C# 中构建高并发、低延迟的异步系统,提升应用性能和响应速度。

0

2026.02.06

Python 微服务架构与 FastAPI 框架
Python 微服务架构与 FastAPI 框架

本专题系统讲解 Python 微服务架构设计与 FastAPI 框架应用,涵盖 FastAPI 的快速开发、路由与依赖注入、数据模型验证、API 文档自动生成、OAuth2 与 JWT 身份验证、异步支持、部署与扩展等。通过实际案例,帮助学习者掌握 使用 FastAPI 构建高效、可扩展的微服务应用,提高服务响应速度与系统可维护性。

3

2026.02.06

JavaScript 异步编程与事件驱动架构
JavaScript 异步编程与事件驱动架构

本专题深入讲解 JavaScript 异步编程与事件驱动架构,涵盖 Promise、async/await、事件循环机制、回调函数、任务队列与微任务队列、以及如何设计高效的异步应用架构。通过多个实际示例,帮助开发者掌握 如何处理复杂异步操作,并利用事件驱动设计模式构建高效、响应式应用。

2

2026.02.06

java连接字符串方法汇总
java连接字符串方法汇总

本专题整合了java连接字符串教程合集,阅读专题下面的文章了解更多详细操作。

24

2026.02.05

java中fail含义
java中fail含义

本专题整合了java中fail的含义、作用相关内容,阅读专题下面的文章了解更多详细内容。

28

2026.02.05

控制反转和依赖注入区别
控制反转和依赖注入区别

本专题整合了控制反转和依赖注入区别、解释、实现方法相关内容。阅读专题下面的文章了解更多详细教程。

18

2026.02.05

钉钉脑图插图教程合集
钉钉脑图插图教程合集

本专题整合了钉钉脑图怎么插入图片、钉钉脑图怎么用相关教程,阅读专题下面的文章了解更多详细内容。

53

2026.02.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 3.3万人学习

C# 教程
C# 教程

共94课时 | 8.7万人学习

Java 教程
Java 教程

共578课时 | 58.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号