【JAVA_SE】作业练习1021

JavaSE25套习题(含答案) java25套测试题以及答案,面试之前可以做一下巩固基础,发现不足 立即下载

1:教练和运动员案例
乒乓球运动员和篮球运动员。
乒乓球教练和篮球教练。
为了出国交流,跟乒乓球相关的人员都需要学习英语。
请用所学知识:
分析,这个案例中有哪些抽象类,哪些接口,哪些具体类

//测试类
public class Demo {
    public static void main(String[] args) {
        GoAbroadPingpongAthletes pa1=new GoAbroadPingpongAthletes("张继科",23);
        pa1.eat();
        pa1.playPingpong();
        pa1.speakEnglish();
        System.out.println("------------------------------");
        GoAbroadPingpongCoach pc1=new GoAbroadPingpongCoach("刘国梁",55);
        pc1.eat();
        pc1.teachPingpong();
        pc1.speakEnglish();
        System.out.println("------------------------------");
        BasketballAthletes ba1=new BasketballAthletes("姚明",30);
        ba1.eat();
        ba1.playBasketball();
        System.out.println("------------------------------");
        BasketbalCoach bc1=new BasketbalCoach("杜峰",50);
        bc1.eat();
        bc1.teachBasketball();
    }

}

//运动员抽象类
public abstract class Athletes {
    private String name;
    private int age;
    public Athletes() {

    }
    public Athletes(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    //抽象方法,非抽象方法皆可
    public void eat(){
        System.out.println(this.getName()+"吃得好才能打得好");
    }

}

//篮球教练类
public class BasketballAthletes extends Athletes {

    public BasketballAthletes() {
        super();
    }

    public BasketballAthletes(String name, int age) {
        super(name, age);
    }
    public void playBasketball(){
        System.out.println(this.getName()+"篮球打得好");
    }

}

//乒乓球员动员类
public class PingpongAthletes extends Athletes {

    public PingpongAthletes() {
        super();
    }

    public PingpongAthletes(String name, int age) {
        super(name, age);
    }
    public void playPingpong(){
        System.out.println(this.getName()+"乒乓球打得好");
    }

}

//教练抽象类
public abstract class Coach {
    private String name;
    private int age;
    public Coach() {

    }
    public Coach(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public void eat(){
        System.out.println(this.getName()+"吃得好才能教得好");
    }

}

//篮球运动员类
public class BasketbalCoach extends Coach {

    public BasketbalCoach() {
        super();
    }

    public BasketbalCoach(String name, int age) {
        super(name, age);
    }
    public void teachBasketball(){
        System.out.println(this.getName()+"可以带出优秀的篮球运动员");
    }

}

//乒乓球教练类
public class PingpongCoach extends Coach {

    public PingpongCoach() {
        super();
    }

    public PingpongCoach(String name, int age) {
        super(name, age);
    }
    public void teachPingpong(){
        System.out.println(this.getName()+"可以带出优秀的乒乓球运动员");
    }

}

//说英语接口
public interface English {
    public abstract void speakEnglish();

}

//出国运动员类
public class GoAbroadPingpongAthletes extends PingpongAthletes implements English {


    public GoAbroadPingpongAthletes() {
        super();
    }

    public GoAbroadPingpongAthletes(String name, int age) {
        super(name, age);
    }

    @Override
    public void speakEnglish() {
        System.out.println(this.getName()+"练出了流利的英语,可以出国了");

    }

}

//出国教练类
public class GoAbroadPingpongCoach extends PingpongCoach implements English {


    public GoAbroadPingpongCoach() {
        super();
    }

    public GoAbroadPingpongCoach(String name, int age) {
        super(name, age);
    }

    @Override
    public void speakEnglish() {
        System.out.println(this.getName()+"练出流利的英语,可以出国了");
    }

}

运行结果:

张继科吃得好才能打得好
张继科乒乓球打得好
张继科练出了流利的英语,可以出国了
------------------------------
刘国梁吃得好才能教得好
刘国梁可以带出优秀的乒乓球运动员
刘国梁练出流利的英语,可以出国了
------------------------------
姚明吃得好才能打得好
姚明篮球打得好
------------------------------
杜峰吃得好才能教得好
杜峰可以带出优秀的篮球运动员

2. final关键字可以干什么?有什么特点?
  1)final修饰基本类型数据时,该变量不能被重新赋值;
  2)final修饰一个引用类型变量时,其引用不能重新指向新的对象;
  3)final修饰一个方法时,该方法不能被重写;
  4)final修饰一个类时,该类不能被继承。

3. final关键字的面试题:
  A:修饰局部变量
  基本数据类型:如果局部变量是一个基本数据类型,那么被final修饰,基本数据类型的变量的值不能再改变!
  引用数据类型:如果用final修饰引用类型的变量,那么它不能在重写分配堆内存空间,但是可以改变可以成员变量的值
  B:初始化时机
  成员变量:初始化方式一:在定义变量时直接赋值
       初始化方式二:声明完变量后在构造方法中为其赋值
       初始化方式三:声明完变量后在构造代码块中为其赋值
  静态变量:初始化方式一:在定义类变量时直接赋值
       初始化方式二:在静态代码块中赋值

4.多态是什么,前提是什么?
  多态:一个事物在不同时刻体现出来的不同状态
  多态的前提:1)必须存在继承或者实现关系
        2)父类引用类型变量指向子类对象
        3)必须有方法重写

5.多态中成员访问的特点?
  1)多态情况下,子父类存在同名成员时,默认访问父类成员;
   只有存在非静态成员方法时才访问子类成员
  2)多态情况下,不能访问子类特有成员

6.多态的好处及弊端?如何解决多态的弊端? 
  多态的好处(特点):
    1)提高代码的维护性(由继承保证)
    2)提高代码的扩展性(由多态保证)
  多态的弊端:
    不能访问子类的特有功能

7.什么是向上转型?什么是向下转型?
  向上转型:父类引用类型变量指向子类的对象
  向下转型:将父类的引用强制转换为子类的引用,前提必须有父类的引用存在,向下转型必须依赖于向上转型。

8.抽象类概述及其特点?
  当一个类中如果有抽象功能(抽象方法)的时候,那么这个类一定要定义为抽象类!
  特点:1)一个抽象类中可以抽象方法,也可以有非抽象方法
     2)抽象类不能创建对象
     3)抽象类存在构造方法

9.抽象类成员特点?
  抽象类的成员特点
    成员变量:
      可以是变量也可以是自定义常量
    构造方法:
      抽象类可以有构造方法:包括有参构造和无参构造
      作用:通过抽象类多态的形式:让子类进行数据的初始化
    成员方法:
      可以有抽象方法,也可以有非抽象方法
  抽象类的成员方法特性:
    抽象方法:强制子类必须要做到一件事情:方法重写(覆盖)
    非抽象方法:由继承保证可以去提高代码的复用性

10.抽象类的小问题
  A:一个类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?
  只要被abstract修饰就可以定义为抽象类。作用是不能让其创建对象!
  B:abstract不能和哪些关键字共存
  不能和final、private、static配合使用

11.接口的概述及其特点?
  接口的概念:接口体现的是一种:扩展功能
  接口的特点:不能实例化(不能直接创建对象)

12.接口的成员特点?
  1)接口中的成员变量都属于常量,默认修饰符:public static final
  2)接口中的方法都是抽象方法,默认修饰符:public abstract
  3)接口是没有构造函数的

13.抽象类和接口的区别?
  1)成员的区别
    成员变量:抽象类:成员变量可以是常量也可以是变量
         接 口:成员变量只能是常量,默认修饰符为:public static final
    构造方法:抽象类:可以有无参构造、有参构造方法
             作用:通过子类进行数据初始化(通过子类创建对象)
         接 口:没有构造方法
    成员方法:抽象类:可以有抽象方法,也可以有非抽象方法
         接 口:只能是抽象方法。默认修饰符为:public abstract
  2)关系的区别
    类与类的关系:extends,Java中只存在单继承,不支持多继承,但支持多层继承
    类与接口:implements,一个类在继承另一个类的同时可以实现多个接口
    接口与接口:继承关系,可以单继承也可以多继承
  3)设计理念
    抽象类:体现的是一种“is a”关系,存在继承关系
    接口:体现的是“like a”关系,扩展功能

教练与运动员源代码 ① 定义说英语接口 成员方法:说英语(); ② 定义抽象人类 成员变量:姓名,年龄; 构造方法:无参,带参; 成员方法:get/set方法,吃饭(); ③ 定义抽象教练类,继承人类 构造方法:无参,带参; 成员方法:教(); ④ 定义抽象运动员类,继承人类 构造方法:无参,带参; 成员方法:学习(); ⑤ 定义具体篮球教练类,继承教练类 构造方法:无参,带参; 成员方法:重写吃饭(){...},重写教(){...} ⑥ 定于具体兵乓球教练类,继承教练类,实现说英语接口 构造方法:无参,带参; 成员方法:重写吃饭(){...},重写教(){...},重写说英语(){...} ⑦ 定义具体篮球运动员类,继承运动员类 构造方法:无参,带参; 成员方法:重写吃饭(){...},重写学习(){...} ⑧ 定义具体兵乓球运动员类,继承运动员类,实现说英语接口 构造方法:无参,带参; 成员方法:重写吃饭(){...},重写教(){...},重写说英语(){...} ⑨ 定义测试类,写代码测试 立即下载

相关推荐

Modscan32连接上了却没数据?一文拆解所有报错(从“Device NOT CONNECTED”到“Checksum Error”)

本文深入解析Modscan32连接异常问题,从状态栏报错到数据异常,提供系统化的诊断思路和解决方案。涵盖物理层问题、配置参数错位、端口占用冲突等常见故障,帮助工程师快速定位和解决Modbus通信中的各类错误。

weixin_30384217的博客 397

Java教练和运动员,乒乓球和篮球出国打比赛,需要学英语

乒乓球运动员和篮球运动员,乒乓球教练和篮球教练。为了出国交流,跟乒乓球相关的人员都需要学习英语。 先创建一个包,在包中创建如下: 1.抽象类 Person抽象类 package jiekouchouxiang; public abstract class Person { private String name; private int age; public Person(){ } public Person(String name,int age){

qq_46556714的博客 2032

彻底卸载Ubuntu双系统,并完美回收100G空间给D盘

本文记录了安全卸载Ubuntu双系统并回收磁盘空间的全过程。作者首先通过Windows命令行彻底清除Ubuntu启动项,避免GRUB引导报错;随后在磁盘管理中删除Linux分区,将100G未分配空间合并至相邻的D盘。针对C盘空间不足问题,作者采用Dism++清理系统文件,并将用户文档、聊天记录等迁移至扩容后的D盘。最终实现了引导纯净、空间合理分配的目标,特别强调分区扩展必须遵循"相邻原则",建议通过间接迁移而非直接扩容来优化系统盘空间管理。

2403_85993278的博客 1512

java第二个案例:运动员和教练(巩固理解抽象类和接口、继承等知识点)

运动员和教练的小案例练习,用到了继承和实现、具体类、抽象类、接口等知识点。

qq_60587058的博客 3723

实战指南:如何优雅解决SpringBoot3与Mybatis-Plus的版本兼容性问题

本文深入解析SpringBoot3与Mybatis-Plus的版本兼容性问题,提供实战解决方案。通过Maven依赖排除策略、Gradle配置方案及自动配置覆盖策略,有效解决包冲突和初始化顺序问题,确保项目平稳升级。适用于开发者快速解决SpringBoot3与Mybatis-Plus的集成难题。

weixin_28432777的博客 597

从零开始之stm32之CAN通信

CAN通信极简教程(小白友好版),从小白的视角了解并实现简单的STM32F103的CAN通信,直接上手。

qq_30993593的博客 1306

JAVA基础 练习--运动员和教练

JAVA基础 练习-12-运动员和教练 ????需求: 我们现在有乒乓球运动员和篮球运动员,丘乓球教练和篮球教练。为了出国交流,跟乒乓球相关的人员都需要学习英语。 请用所学知识分析,这个案例中有哪些具体类,哪些抽象类,哪些接口,并用代码实现 分析: 分析:从具体到抽象 乒乓球运动员 篮球运动员 乒乓球教练 发篮球教练 实现:从抽象到具体 使用: 使用的是具体的类的对象 思路: 定义说英语的接口 成员方法: 说英语(); 定义抽象人类 成员变量: 姓名,年龄;构造方法:无参,带参;成员方法: g

qq_46263740的博客 2274

ESP32 DW1000 UWB 室内定位系统

详细介绍ESP32 DW1000 UWB 室内定位系统的设计演示demo。

DT程序员的博客 1662

java基础之接口(抽象类与接口的区别)_练和运动员案例: 乒乓球运动员和篮球运动员; 乒乓球教练和篮球教练;

/具体猫类//具体狗类//有跳高功能的猫//有跳高功能的狗//定义跳高猫并测试jc.setName(“哆啦A梦”);jc.eat();jc.sleep();jc.jump();/*加入抽烟的额外功能分析:从具体到抽象老师:姓名,年龄,吃饭,睡觉学生:姓名,年龄,吃饭,睡觉实现:从抽象到具体使用:具体*///定义抽烟接口//抽烟的抽象方法//定义抽象人类//姓名//年龄//具体老师类。

2401_84446919的博客 982

Vue3 - 完美解决html2canvas截图不全问题,截图只截取当前可视区域导出图片不全,截屏导出的图片显示不全只有一部分或缺一块,vue3移动端H5网页项目使用html2canvas插件长截图!

vue3,html2canvas,移动端H5网页,截图不全,html2canvas长截图不全,保存长截图,页面滚动导致截图不全,网页下方截屏不到怎么办,底部一部分无法截屏到,保存的图片少了一大块,H5海报截图不完整,怎么截取滚动条下方的内容,截图图时图片不全,截图图片只有一半的问题,底部内容空白,截图空白问题的解决,截图不全怎么办,html2canvas.js网页截图功能(解决截图不全问题,移动端ios系统截图不完整,html2canvas截图太长又不能删减截取不到,使用HTML2Canvas在H5页面上实

🏆 前端领域优质创作者 1万+

GEE APP:基于GEE的红树林监测平台

本文将介绍如何利用Google Earth Engine平台,结合Landsat系列卫星影像和SRTM高程数据,实现红树林分布的动态监测与变化分析。

此星光明博客 160

运动员和教练(接口实现)

需求: 我们现在有乒乓球运动员和篮球运动员,乒乓球教练和篮球教练。为了出国交流,跟乒乓球相关的人员都需要学习英语。请用所学知识分析,这个案例中有哪些具体类,哪些抽象类,哪些接口,并用代码实现 分析: 我们在看需求的时候一定要从具体到抽象; 这个需求里的具体无非就是四个类代表四种对象,即:乒乓球运动员、篮球运动员、乒乓球教练、篮球教练。 提取出共性类: 运动员、教练、学习、教学;人; 实现: 接口: package Sport; public interface English { //成

meini32的博客 965

一文搞懂多速率信号处理中信号插值的本质:从插 0、插原值到线性插值!

信号插值在数字信号处理中经常被使用,但“插值”背后究竟发生了什么,却常被忽略。插0、插原值、线性插值看似只是不同的实现方式,实则对应着完全不同的频域效应与滤波特性。本文将结合公式与MATLAB仿真,深入剖析插0、插原值与线性插值三种典型策略的本质区别。

m0_66360845的博客 918

PAT (Basic Level) Practice 乙级 1021 个位数统计

PAT (Basic Level) Practice 乙级 1021 给定一个 k 位整数 N=d​k−1​​10​k−1​​+⋯+d​1​​10​1​​+d​0​​ (0≤d​i​​≤9, i=0,⋯,k−1, d​k−1​​>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。 输入格式: 每个输入包含 1 个测试...

ZQYnn's blog 204

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

PAT1021

这是一道常规的图论题,题目链接如下: http://www.patest.cn/contests/pat-a-practise/1021 这道题的大概意思是,首先判断一个图是不是树,如果不是则输出联通分量的个数,否则找出使得改树高度最高的所有根节点并输出。 首先使用并查集可以非常轻易的判断出联通分量的个数 随后先任取一点遍历图,找到距离该点最远的点,然后,从找的的点中任取一点出发遍历找到的所

调包侠 614

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

1021: 三个整数的最大值 Java

1021: 三个整数的最大值 时间限制: 1 Sec 内存限制: 30 MB 提交: 41069 解决: 29419 [状态] [讨论版] [提交] [命题人:admin] 题目描述 从键盘输入三个整数x,y和z,求出其中最大的数。 输入 输入三个整数,用空格隔开。 输出 输出最大整数。 样例输入 Copy 20 16 18 样例输出 Copy 20 /* * 求三个整数的最大值 */ //导入java.util.*; import java.util.*; public class Mai

指尖跳动的字节的博客 447

1021 集合运算(java)

问题描述  给出两个整数集合A、B,求出他们的交集、并集以及B在A中的余集。输入格式  第一行为一个整数n,表示集合A中的元素个数。  第二行有n个互不相同的用空格隔开的整数,表示集合A中的元素。  第三行为一个整数m,表示集合B中的元素个数。  第四行有m个互不相同的用空格隔开的整数,表示集合B中的元素。  集合中的所有元素均为int范围内的整数,n、m<=1000。输出格式  第一行按从...

Pluto 602

PAT:B1021 个位数统计(15 分)

PAT:B1021 个位数统计(15 分) 给定一个 k 位整数 N=d​k−1​​10​k−1​​+⋯+d​1​​10​1​​+d​0​​ (0≤d​i​​≤9, i=0,⋯,k−1, d​k−1​​>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。 输入格式: 每个输入包含 1 个测试用例,即一个不超过 ...

Ecloss 586

[Java] PAT甲级 1021 Deepest Root

代码可全部AC。在网上参考了一些思路,想明白了来总结学习一下。(刚写博客不久不会加图,就用文字说明了) 首先利用dfs看数据分为几部分。 如果是一个无环图(就是成树,这道题可能存在有环的情况,稍后说明),则存在一条最长路径AZ(两边缘可能包括多个点),在这条路径上有多个分支,任意取某一分支,假设该分支与最长路径交于M点,该分支最边上的点为N,那么一定存在这种情况NM<min(AM,MZ)。所...

我的博客 312

PAT__1021

https://www.patest.cn/contests/pat-b-practise/1021java版还是会超时。。。package b; import java.util.Scanner; public class _1021 { public static void main(String[] args) { int[] num = new int[10]; Scanne...

younghaodaydayupup的博客 207

poj 1021 java_北大poj-1021

2D-NimTime Limit: 1000MSMemory Limit: 10000KTotal Submissions: 4066Accepted: 1851DescriptionThe 2D-Nim board game is played on a grid, with pieces on the grid points. On each move, a player may remove...

weixin_36345268的博客 229

PAT-B1021 个位数统计

1021个位数统计(15 分) 给定一个k位整数N=d​k−1​​10​k−1​​+⋯+d​1​​10​1​​+d​0​​(0≤d​i​​≤9,i=0,⋯,k−1,d​k−1​​&gt;0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N=100311,则有 2 个 0,3 个 1,和 1 个 3。 输入格式: 每个输入包含 1 个测试用例,即一个不超过 1000...

chauncyyoung的博客 230

PAT 1021-1030 题解

早期部分代码用Java实现。由于PAT虽然支持各种语言,但只有C/C++标程来限定时间,许多题目用Java读入数据就已经超时,后来转投C/C++。浏览全部代码:请戳 本文谨代表个人思路,欢迎讨论;) 1021. Deepest Root (25) 题意 无环连通图也可以视为一棵树,选定图中任意一点作为根,如果这时候整个树的深度最大,则称其为deepest root。 给

biaobiaoqi的老博客 4587

【全架构】统信UOS部署JAVA环境

软件环境:UOS Server 1021软件包:jdk-8u201-linux-x64.tar.gz。

YZEQIANG的博客 1万+

OJ-POJ1021-暴力

这题网上有代码量很少的解法,可惜我看不明白。 先不管题目,讨论如何判断两个图形相同(旋转,平移,翻转)? 就是如下8个图形中,任选出两个,要得出它们是两个相同的图形: 我的方法特土特暴力:列出8种,然后分别比较。。。 回到题目,自己的理解是(对左右两个板): a,找到群。要求左右,群数相同,群中点数相同 b,群中点数相同的,一定有一对一相同的形状 分析过程: 1,找群,

zxwtry的博客 569

PAT 1021. Deepest Root

1021. Deepest Root (25) 时间限制 1500 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A graph which is connected and acyclic can b

Do not mess it up 556
上一篇: 【JAVA_SE学习笔记】封装与继承
下一篇: 【JAVA_SE】作业练习1022
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值