Java基础篇_有关接口和抽象类的几道练习题(分享)
发布时间 - 2026-01-11 01:56:22 点击率:次呃,一定要理解之后自己敲!!!这几道题,使我进一步了解了接口和抽象类。

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
}
}
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基础篇_有关接口和抽象类的几道练习题(分享)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# 抽象类和接口
# Java接口和抽象类用法实例总结
# java中抽象类、抽象方法、接口与实现接口实例详解
# Java中接口和抽象类的区别与相同之处
# Java中的接口和抽象类用法实例详解
# JAVA 继承基本类、抽象类、接口介绍
# java 抽象类与接口的区别总结
# Java接口和抽象类实例分析
# 浅谈Java抽象类和接口的个人理解
# 详细解析Java中抽象类和接口的区别
# Java入门基础之抽象类与接口
# 制造厂商
# 取钱
# 我能
# 重写
# 抽象类
# 报错
# 有个
# 多个
# 索尼
# 微软
# 给大家
# 金融机构
# 几道
# 我在
# 放在
# 都没
# 希望能
# 能有
# 半个
# 会对
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何快速搭建高效香港服务器网站?
Laravel怎么判断请求类型_Laravel Request isMethod用法
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
Laravel如何实现本地化和多语言支持?(i18n教程)
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
详解CentOS6.5 安装 MySQL5.1.71的方法
Laravel如何实现一对一模型关联?(Eloquent示例)
iOS发送验证码倒计时应用
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
米侠浏览器网页背景异常怎么办 米侠显示修复
如何在万网自助建站平台快速创建网站?
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
如何在阿里云高效完成企业建站全流程?
如何快速启动建站代理加盟业务?
如何快速打造个性化非模板自助建站?
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
EditPlus中的正则表达式 实战(4)
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
javascript如何操作浏览器历史记录_怎样实现无刷新导航
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
Laravel API资源类怎么用_Laravel API Resource数据转换
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
详解Huffman编码算法之Java实现
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
Laravel如何自定义错误页面(404, 500)?(代码示例)
成都网站制作公司哪家好,四川省职工服务网是做什么用?
Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】
如何在Windows服务器上快速搭建网站?
如何用AI帮你把自己的生活经历写成一个有趣的故事?
Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
如何基于云服务器快速搭建个人网站?
Laravel如何实现数据库事务?(DB Facade示例)
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
如何在景安服务器上快速搭建个人网站?
如何快速建站并高效导出源代码?
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
制作企业网站建设方案,怎样建设一个公司网站?
JS弹性运动实现方法分析

