java抽象类,接口,枚举练习题

news2024/12/25 10:32:29

第一题:

答案:

class Animal{
    //成员变量
    protected String  name;
    protected int weight;
    //构造方法
    public Animal(){
        this.name="refer";
        this.weight=50;
    }
    public Animal(String name,int weight){
        this.name=name;
        this.weight=weight;
    }
    //成员方法
    public void show(){
        System.out.println("名字:"+this.name+" 体重:"+this.weight);
    }
}
class Dog extends Animal{
    //成员变量
    private String color;
    //构造方法
    public Dog(String name,int weight){
        super(name,weight);  //实例化的时候要先初始化父类
        color="yellow";
    }
    //成员方法
    public void show(){  //重写,返回值类型,方法名,形参全部相同,且子类访问限制符要大于等于父类访问限制符
        System.out.println("名字:"+this.name+" 体重:"+this.weight+" 颜色:"+this.color);
    }
}
public class P7_1 {
    public static void main(String[] args) {
        Dog dog=new Dog("refer",50);
        dog.show();
    }
}

第二题:

答案:

interface IPay{
    double pay();  //符合阿里编码规范,就不再加public abstract,提高代码简洁性
}
class Winter implements IPay{
    int elc=145;  //默认是public static final
    double money=0.49;
    public double pay(){  //实现接口中的抽象方法,且不能使用默认修饰符,必须使用public
        return elc*money;
    }
}
class Summer implements IPay{
    int elc=125;
    double money=0.49;
    public double pay(){
        return elc*money;
    }
}
class PayMoney{
    public void season(IPay pay){
        if (pay instanceof Winter){  //如果是冬天
            Winter winter=new Winter();
            System.out.println("冬天:"+winter.pay());
        }
        else if (pay instanceof Summer){  //如果是夏天
            Summer summer=new Summer();
            System.out.println("夏天:"+summer.pay());
        }
        else {  //如果既不是冬天也不是夏天
            System.out.println("请传入正确的参数");
        }
    }
}
public class P7_1 {
    public static void main(String[] args) {
        PayMoney p=new PayMoney();
        p.season(new Winter());  //使用匿名对象
        p.season(new Summer());  //使用匿名对象
    }
}

 

第三题:

答案:

interface Animal{
    String address="广州动物园";
    default void eat(){   //接口里default和static修饰的方法可以进行实现
        System.out.println("每天吃得饱饱的!");
    }
    static void show(){
        System.out.println("我是动物!");
    }
    void ability();  //省略pubic abstract,提高代码简洁性
}
class Bird implements Animal{
    public Bird(){
        System.out.println("我是广州动物园的鸟。");
    }
    @Override    //添加注解,利用编译器的检查优势,提高开发效率
    public void eat(){   //重写方法必须用public修饰,不能使用默认的访问权限
        Animal.show();
        System.out.println("我爱吃虫子!每天吃得饱饱的!");
    }

    @Override
    public void ability() {
        System.out.println("我会飞!");
    }
}
class Fish implements Animal{
    public Fish(){
        System.out.println("我是广州动物园的鱼。");
    }
    @Override
    public void eat(){
        Animal.show();
        System.out.println("我爱吃小虾!每天吃得饱饱的!");
    }

    @Override
    public void ability() {
        System.out.println("我会游泳!");
    }
}
class Monkey implements Animal{
    public Monkey(){
        System.out.println("我是广州动物园的猴子。");
    }
    @Override
    public void eat(){
        Animal.show();
        System.out.println("我爱吃香蕉!每天都吃得饱饱的!");
    }

    @Override
    public void ability() {
        System.out.println("我会爬树!");
    }
}
public class Test {
    public static void main(String[] args) {
        Bird bird=new Bird();
        bird.eat();
        bird.ability();

        Fish fish=new Fish();
        fish.eat();
        fish.ability();

        Monkey monkey=new Monkey();
        monkey.eat();
        monkey.ability();
    }
}

第四题:

答案:

第五题:

答案:

enum ReviewPlan{
    //枚举成员必须放在类的一开始,使用enum来枚举就必须省略public static final,如果使用自定义枚举类则规则不一样
    Monday("星期一","数学"),
    Tuesday("星期二","数据结构"),
    Wednesday("星期三","Java"),
    Thursday("星期四","日语"),
    Friday("星期五","离散数学"),
    Saturday("星期六","Html+Css+JavaScript"),
    Sunday("星期天","电影艺术");
    
    private final String day;  //因为枚举针对的是有限个且确定的对象,不希望被修改,所以用private final
    private final String plan;

    private ReviewPlan(String day,String plan){  //私有化类的构造器
        this.day=day;
        this.plan=plan;
    }
    public String toString(){  //重写enum里自带的toString方法
        return this.day+this.plan;
    }
}
public class Test {
    public static void main(String[] args) {
        for (ReviewPlan r:ReviewPlan.values()){
            System.out.println(r.name()+"的属性是:"+r.toString());
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1692745.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Android Studio记事本系统

目录 项目介绍 图片展示 运行环境 获取方式 项目介绍 具有登录,注册,记住密码,自动登录的功能; 可以新增记事本,编辑,删除记事本信息,同时可以设置主标题,内容,以及…

【网络】为什么udp协议报头有长度字段,而tcp没有

引言: 在网络通信中,UDP(用户数据报协议)和TCP(传输控制协议)是两种常用的传输层协议。它们在设计和功能上有一些不同之处,其中之一就是报头中的长度字段。本文将深入探讨UDP和TCP协议中长度字…

LLM——探索大语言模型在心理学方面的应用研究

1. 概述 心理学经历了多次理论变革,目前人工智能(AI)和机器学习,特别是大型语言模型(LLMs)的使用,预示着新研究方向的开启。本文详细探讨了像ChatGPT这样的LLMs如何转变心理学研究。它讨论了LL…

LangChain笔记

很好的LLM知识博客: https://lilianweng.github.io/posts/2023-06-23-agent/ LangChain的prompt hub: https://smith.langchain.com/hub 一. Q&A 1. Q&A os.environ["OPENAI_API_KEY"] “OpenAI的KEY” # 把openai-key放到环境变量里&…

元宇宙虚拟线上会议,可应用于哪些行业和领域?

随着科技的飞速进步和互联网的广泛普及,线上元宇宙会议以其独特的魅力和优势,逐渐崭露头角,积木易搭旗下的元宇宙数字营销平台——视创云展,为线上元宇宙会议提供了全方位的服务,不仅涵盖了场景搭建、数字人互动、在线…

超简单白话文机器学习 - 回归树树剪枝(含算法介绍,公式,源代码实现以及调包实现)

1. 回归树 1.1 算法介绍 大家看到这篇文章时想必已经对树这个概念已经有基础了,如果不是很了解的朋友可以看看笔者的这篇文章: 超简单白话文机器学习-决策树算法全解(含算法介绍,公式,源代码实现以及调包实现&#x…

小程序checkbox改成圆形与radio样式保持一致

修改前 修改后 html: <view class"agreement"><checkbox value"{{ isAgreed }}" bind:tap"toggleCheckbox" /><text>我同意室外智能健身房 <text class"link" bind:tap"showUserProtocol">用户协…

【C++】继承(二)深入理解继承:派生类默认成员函数与友元、静态成员的奥秘

目录 派生类的默认成员函数①派生类的构造函数②派生类的拷贝构造函数③派生类的赋值构造④派生类的析构函数 继承与友元继承与静态成员 前言 我们在上一章讲解了: 继承三部曲&#xff0c;本篇基于上次的基础继续深入了解继承的相关知识&#xff0c;欢迎大家和我一起学习继承 派…

Python小游戏——打砖块

文章目录 打砖块游戏项目介绍及实现项目介绍环境配置代码设计思路代码设计详细过程 难点分析源代码代码效果 打砖块游戏项目介绍及实现 项目介绍 打砖块游戏是一款经典的街机游戏&#xff0c;通过控制挡板来反弹小球打碎屏幕上的砖块。该项目使用Python语言和Pygame库进行实现…

牛客NC392 参加会议的最大数目【中等 贪心+小顶堆 Java/Go/PHP 力扣1353】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/4d3151698e33454f98bce1284e553651 https://leetcode.cn/problems/maximum-number-of-events-that-can-be-attended/description/ 思路 贪心优先级队列Java代码 import java.util.*;public class Solution {/**…

纽曼新品X1000:轻巧便携仅重9.9公斤的1度电应急电源

在户外救援行动和应急设备中&#xff0c;电力供应的稳定性和安全性直接影响到救援工作的效率和成功率。在现代救援工作中&#xff0c;常见的光学声波探测仪、通信联络设备、气象检测仪、生命探测仪、照明设备等装备均需有持续的电力供应&#xff0c;才能保障救援工作的有序开展…

一文带你搞懂DiT(Diffusion Transformer)

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 总结链接…

Redis 源码学习记录:集合 (set)

无序集合 Redis 源码版本&#xff1a;Redis-6.0.9&#xff0c;本篇文章无序集合的代码均在 intset.h / intset.c 文件中。 Redis 通常使用字典结构保存用户集合数据&#xff0c;字典键存储集合元素&#xff0c;字典值为空。如果一个集合全是整数&#xff0c;则使用字典国语浪费…

java图书电子商务网站的设计与实现源码(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的图书电子商务网站的设计与实现。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 图书电子商…

pikachu-Unsafe Filedownload

任意点击一个图片进行下载&#xff0c;发现下载的url。 http://127.0.0.1/pikachu/vul/unsafedownload/execdownload.php?filenamekb.png 构造payload&#xff1a; 即可下载 当前页面的源码&#xff0c;可以进行路径穿越来下载一些重要的配置文件来获取信息。 http://127.0.…

《书生·浦语大模型实战营》第一课 学习笔记:书生·浦语大模型全链路开源体系

文章大纲 1. 简介与背景智能聊天机器人与大语言模型目前的开源智能聊天机器人与云上运行模式 2. InternLM2 大模型 简介3. 视频笔记&#xff1a;书生浦语大模型全链路开源体系内容要点从模型到应用典型流程全链路开源体系 4. 论文笔记:InternLM2 Technical Report简介软硬件基础…

光电直读抄表技术详细说明

1.技术简述 光电直读抄表是一种智能化智能计量技术&#xff0c;主要是通过成像原理立即载入电度表里的标值&#xff0c;不用人工干预&#xff0c;大大提升了抄表效率数据可靠性。此项技术是智慧能源不可或缺的一部分&#xff0c;为电力公司的经营管理提供了有力的适用。 2.原…

在winnas中使用docker desktop遇到的问题及解决方法记录

最近在尝试从群晖转向winnas&#xff0c;一些简单的服务依然计划使用docker来部署。群晖的docker简单易用且稳定&#xff0c;在win上使用docker desktop过程中遇到了不少问题&#xff0c;在此记录一下以供后来人参考。 一、安装docker desktop后启动时遇到无法启动docker引擎 …

VMware虚拟机开机卡在Boot Manager

问题情况 虚拟机启动停留在Boot Manager 解决办法1 解决办法2 1、关闭虚拟机&#xff0c;并将其移除 2、找到虚拟机储存位置清除储存数据 3、使用360清除残留数据 4、重启VMware&#xff0c;重新创建虚拟机 关键词&#xff1a; BIOS 蓝色界面

超级初始网络

目录 一、网络发展史 1、独立模式 2、局域网 LAN&#xff08;Local Area Network&#xff09; 3、广域网 WAN (Wide Area Network) 二、网络通信基础 1、IP地址&#xff1a;用于定位主机的网络地址 2、端口号&#xff1a;用于定位主机中的进程 3、网络协议 4、五元组 …