java实验(头歌)--面向对象封装继承和多态

文章目录

      • 第一题
      • 第二题
      • 第三题
      • 第四题
      • 第五题
      • 第六题
      • 第七题
      • 第八题

快速完成实验的方法:
把对应题目的主函数替换,其他复制粘贴。

第一题

请添加图片描述

public class TestPersonDemo {public static void main(String[] args) {/********* begin *********/// 声明并实例化一Person对象p// 给p中的属性赋值// 调用Person类中的talk()方法/********* end *********/}
}// 在这里定义Person类
class Person {/********* begin *********//********* end *********/
}

答案:

// 把主函数替换掉
public static void main(String[] args) {/********* begin *********/// 声明并实例化一Person对象pPerson p = new Person();// 给p中的属性赋值p.setName("张三");p.setAge(18);// 调用Person类中的talk()方法p.talk();/********* end *********/}// 在这里定义Person类
class Person {/********* begin *********/private String name;private  int age;public void talk(){System.out.println("我是:"+getName()+",今年:"+getAge()+"岁");}public Person() {}public Person(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;}
/********* end *********/
}

第二题

请添加图片描述

public class extendsTest {public static void main(String args[]) {// 实例化一个Cat对象,设置属性name和age,调用voice()和eat()方法,再打印出名字和年龄信息/********* begin *********//********* end *********/// 实例化一个Dog对象,设置属性name和age,调用voice()和eat()方法,再打印出名字和年龄信息/********* begin *********//********* end *********/}
}class Animal {/********* begin *********//********* end *********/}class Cat extends Animal {// 定义Cat类的voice()和eat()方法/********* begin *********//********* end *********/
}class Dog extends Animal {// 定义Dog类的voice()和eat()方法/********* begin *********//********* end *********/
}

答案:

    public static void main(String args[]) {// 实例化一个Cat对象,设置属性name和age,调用voice()和eat()方法,再打印出名字和年龄信息/********* begin *********/Cat cat = new Cat();cat.setName("大花猫");cat.setAge(6);cat.voice();cat.eat();/********* end *********/System.out.println(cat.getName()+cat.getAge()+"岁");// 实例化一个Dog对象,设置属性name和age,调用voice()和eat()方法,再打印出名字和年龄信息/********* begin *********/Dog dog = new Dog();dog.setName("大黑狗");dog.setAge(8);dog.voice();dog.eat();/********* end *********/System.out.println(dog.getName()+dog.getAge()+"岁");/********* end *********/}class Animal {/********* begin *********/private String name;private int age;public Animal() {}public Animal(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;}/********* end *********/}class Cat extends Animal {// 定义Cat类的voice()和eat()方法/********* begin *********/public void voice(){System.out.println(getName()+"喵喵叫");}public void eat(){System.out.println(getName()+"吃鱼");}/********* end *********/
}class Dog extends Animal {// 定义Dog类的voice()和eat()方法/********* begin *********/public void voice(){System.out.println(getName()+"汪汪叫");}public void eat(){System.out.println(getName()+"吃骨头");}/********* end *********/
}

第三题

请添加图片描述

public class superTest {public static void main(String[] args) {// 实例化一个Student类的对象s,为Student对象s中的school赋值,打印输出信息/********* begin *********//********* end *********/}
}class Person {/********* begin *********//********* end *********/
}class Student extends Person {/********* begin *********//********* end *********/
}

答案:

public static void main(String[] args) {// 实例化一个Student类的对象s,为Student对象s中的school赋值,打印输出信息/********* begin *********/Student s = new Student("张三",18,"哈佛大学");System.out.println("姓名:"+s.getName()+",年龄:"+s.getAge()+",学校:"+s.getSchool());/********* end *********/}class Person {/********* begin *********/private String name;private int age;public Person() {}public Person(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;}
/********* end *********/
}class Student extends Person {/********* begin *********/private String school;public Student(String name,int age,String school){super(name, age);this.school = school;}public String getSchool() {return school;}public void setSchool(String school) {this.school = school;}
/********* end *********/
}

第四题

请添加图片描述

	public static void main(String[] args) {// 实例化子类对象s,调用talk()方法打印信息/********* begin *********//********* end *********/}class Person {/********* begin *********//********* end *********/
}class Student extends Person {/********* begin *********//********* end *********/
}

第五题

请添加图片描述

	public static void main(String[] args) {/********* begin *********/// 分别实例化Student类与Worker类的对象,并调用各自构造方法初始化类属性。// 分别调用各自类中被复写的talk()方法 打印信息。/********* end *********/}// 声明一个名为Person的抽象类,在Person中声明了三个属性name age occupation和一个抽象方法——talk()。
abstract class Person {/********* begin *********//********* end *********/
}// Student类继承自Person类,添加带三个参数的构造方法,复写talk()方法 返回姓名、年龄和职业信息
class Student extends Person {/********* begin *********//********* end *********/
}// Worker类继承自Person类,添加带三个参数的构造方法,复写talk()方法 返回姓名、年龄和职业信息
class Worker extends Person {/********* begin *********//********* end *********/}

答案:

public static void main(String[] args) {/********* begin *********/// 分别实例化Student类与Worker类的对象,并调用各自构造方法初始化类属性。Student stu = new Student("张三",20,"学生");Worker worker = new Worker("李四",30,"工人");// 分别调用各自类中被复写的talk()方法 打印信息。stu.talk();worker.talk();/********* end *********/}// 声明一个名为Person的抽象类,在Person中声明了三个属性name age occupation和一个抽象方法——talk()。
abstract class Person {/********* begin *********/String name;int age;String occupation;public Person() {}public Person(String name, int age, String occupation) {this.name = name;this.age = age;this.occupation = occupation;}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 String getOccupation() {return occupation;}public void setOccupation(String occupation) {this.occupation = occupation;}public abstract void talk();
/********* end *********/
}// Student类继承自Person类,添加带三个参数的构造方法,复写talk()方法 返回姓名、年龄和职业信息
class Student extends Person {public Student(String name, int age, String occupation) {super(name, age, occupation);}/********* begin *********/@Overridepublic void talk() {System.out.println("学生——>姓名:"+getName()+",年龄:"+getAge()+",职业:"+getOccupation()+"!");}
/********* end *********/
}// Worker类继承自Person类,添加带三个参数的构造方法,复写talk()方法 返回姓名、年龄和职业信息
class Worker extends Person {public Worker(String name, int age, String occupation) {super(name, age, occupation);}/********* begin *********/@Overridepublic void talk() {System.out.println("工人——>姓名:"+getName()+",年龄:"+getAge()+",职业:"+getOccupation()+"!");}/********* end *********/}

第六题

请添加图片描述

public static void main(String args[]) {Bike1 obj = new Bike1();obj.run();Honda honda = new Honda();honda.run();Yamaha yamaha = new Yamaha();yamaha.run();}//不可以修改 final 变量的值
// final方法,不可以重写
 不可以扩展 final 类//请在此添加你的代码/********** Begin *********/class Bike1 {final int speedlimit = 90;void run() {speedlimit = 120; System.out.println("speedlimit=120");}}class Bike2 {final void run() {System.out.println("running");}
}class Honda extends Bike2 {void run() { System.out.println("running safely with 100kmph");}}final class Bike3 {
}class Yamaha extends Bike3 { void run() {System.out.println("running safely with 100kmph");}}/********** End **********/

答案:

main 方法里不用改//不可以修改 final 变量的值
// final方法,不可以重写
 不可以扩展 final 类
//请在此添加你的代码
/********** Begin *********/
class Bike1 {int speedlimit = 90;void run() {speedlimit = 120;System.out.println("speedlimit=120");}}class Bike2 {void run() {System.out.println("running");}
}class Honda extends Bike2 {void run() {System.out.println("running safely with 100kmph");}}class Bike3 {
}class Yamaha extends Bike3 {void run() {System.out.println("running safely with 100kmph");}}
/********** End **********/

第七题

请添加图片描述

public static void main(String[] args) {// 实例化一Student的对象s,并调用talk()方法,打印信息/********* begin *********//********* end *********/}// 声明一个Person接口,并在里面声明三个常量:name、age和occupation,并分别赋值,声明一抽象方法talk()
interface Person {/********* begin *********//********* end *********/
}// Student类继承自Person类 复写talk()方法返回姓名、年龄和职业信息
class Student implements Person {/********* begin *********//********* end *********/
}

答案:

public static void main(String[] args) {// 实例化一Student的对象s,并调用talk()方法,打印信息/********* begin *********/Student s = new Student();s.talk();/********* end *********/}// 声明一个Person接口,并在里面声明三个常量:name、age和occupation,并分别赋值,声明一抽象方法talk()
interface Person {/********* begin *********/static final String name = "张三";static final int age =18;static final String occupation = "学生";public abstract void talk();/********* end *********/
}// Student类继承自Person类 复写talk()方法返回姓名、年龄和职业信息
class Student implements Person {/********* begin *********/@Overridepublic void talk() {System.out.println("学生——>姓名:"+name+",年龄:"+age+",职业:"+occupation+"!");}
/********* end *********/
}

第八题

请添加图片描述

public static void main(String[] args) {// 以多态方式分别实例化子类对象并调用eat()方法/********* begin *********//********* end *********/}// Animal类中定义eat()方法
class Animal {/********* begin *********//********* end *********/
}// Dog类继承Animal类 复写eat()方法
class Dog extends Animal {/********* begin *********//********* end *********/
}// Cat类继承Animal类 复写eat()方法
class Cat extends Animal {/********* begin *********//********* end *********/
}// Lion类继承Animal类 复写eat()方法
class Lion extends Animal {/********* begin *********//********* end *********/
}

答案:

public static void main(String[] args) {// 以多态方式分别实例化子类对象并调用eat()方法/********* begin *********/Animal dog = new Dog();Animal cat = new Cat();Animal lion = new Lion();dog.eat();cat.eat();lion.eat();/********* end *********/}// Animal类中定义eat()方法
class Animal {/********* begin *********/public void eat(){}/********* end *********/
}// Dog类继承Animal类 复写eat()方法
class Dog extends Animal {/********* begin *********/public void eat(){System.out.println("eating bread...");}/********* end *********/
}// Cat类继承Animal类 复写eat()方法
class Cat extends Animal {/********* begin *********/@Overridepublic void eat() {System.out.println("eating rat...");}/********* end *********/
}// Lion类继承Animal类 复写eat()方法
class Lion extends Animal {/********* begin *********/@Overridepublic void eat() {System.out.println("eating meat...");}/********* end *********/
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

练[FBCTF2019]RCEService

[FBCTF2019]RCEService 文章目录 [FBCTF2019]RCEService掌握知识解题思路关键paylaod 掌握知识 ​ json字符串格式,命令失效(修改环境变量)–绝对路径使用linux命令,%0a绕过preg_match函数,代码审计 解题思路 打开题目链接,发现…

2023年中国互联网本地生活服务行业发展历程及趋势分析:国内市场仍有增长潜力[图]

我国本地生活进入4.0时代,“附近消费”场景迭代、渠道多元;更多玩家涌入本地生活赛道,本地消费场景分散到多平台、多模式,线下门店短视频直播运营组合蔚然成风。 本地生活行业发展历程 资料来源:共研产业咨询&#xf…

光伏并网逆变器低电压穿越技术研究(Simulink仿真)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

R实现数据分布特征的视觉化——多笔数据之间的比较

大家好,我是带我去滑雪! 如果要对两笔数据或者多笔数据的分布情况进行比较,Q-Q图、柱状图、星形图都是非常好的选择,下面开始实战。 (1)绘制Q-Q图 首先导入数据bankwage.csv文件,该数据集…

解决:docker安装nginx,在腾讯云服务器可以打开但在本地的电脑浏览器不能打开

第一步运行nginx&#xff1a; [rootVM-24-4-centos ~]# docker run -d --name nginx01 -p 8080:80 nginx [rootVM-24-4-centos ~]# curl localhost:8080 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> html …

JMeter压测如何分配业务比例?

在进行综合场景压测时&#xff0c;由于不同的请求&#xff0c;要求所占比例不同&#xff0c;那如何实现呢&#xff1f; 有人说将这些请求分别放到单独的线程组下&#xff0c;然后将线程组的线程数按照比例进行配置&#xff0c;这种方法不是很好&#xff0c;想想&#xff0c;不…

关于 Vue-iClient-MapboxGL 的使用注意事项

官网&#xff1a;https://iclient.supermap.io/web/apis/vue/zh/api/guide/installation.html 关于图的使用&#xff0c;其余的引入步骤不再赘述&#xff0c;仅说注意事项。 推荐使用的是全局引入&#xff0c;也就是完整引入 因为单独引入我踩了不少坑&#xff0c;比如说 cs…

Thinking for Doing:让LLMs能推断他人心理状态来做出适当的行动。

LLMs通常能回答有关心理状态的问题&#xff0c;但往往不能将这些推断用于实际行动。例如&#xff0c;如果一个故事中的角色正在寻找他的背包&#xff0c;而模型知道背包在厨房里&#xff0c;那么模型应该能推断出最好的行动是建议角色去厨房查看。T4D 的目的就是要求模型不仅要…

Java学习day08:面向对象三大特性之一:继承

声明&#xff1a;该专栏本人重新过一遍java知识点时候的笔记汇总&#xff0c;主要是每天的知识点题解&#xff0c;算是让自己巩固复习&#xff0c;也希望能给初学的朋友们一点帮助&#xff0c;大佬们不喜勿喷(抱拳了老铁&#xff01;) Java学习day08&#xff1a;面向对象三大特…

辅助寄存器是干什么用的

目录 请问CPU 的 MREQ 引脚和 IORQ 引脚分别是干什么用的 那这里的引脚是什么含义呢&#xff1f; 程序是指令和数据的集合 辅助寄存器是干什么用的 寄存器的用途取决于它的类型 PC 寄存器也叫作“程序指针”&#xff0c;存储着指向 CPU 接下来 要执行的指令的地址。PC 寄存…

Suricata – 入侵检测、预防和安全工具

一、Suricata介绍 Suricata是一个功能强大、用途广泛的开源威胁检测引擎&#xff0c;提供入侵检测 (IDS)、入侵防御 (IPS) 和网络安全监控功能。它执行深度数据包&#xff08;网络流量&#xff09;检查以及模式匹配&#xff0c;在威胁检测中非常强大。 工作流程&#xff1a; 主…

关于对XSS原理分析与绕过总结

一、原理 该文章仅用于信息防御技术教学&#xff0c;请勿用于其他用途。 1、XSS原理 XSS&#xff08;跨站脚本攻击&#xff09;是一种常见的网络安全漏洞&#xff0c;攻击者通常会在网页中插入恶意的 JavaScript 代码。由于服务器对输入数据的过滤和验证不严格&#xff0c;这…

leetcode做题笔记160. 相交链表

给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数返回结果后&…

【力扣每日一题】2023.10.7 股票价格跨度

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 给我们一个数组表示不同时间的股票的价格&#xff0c;要我们按照顺序返回每天的股票价格跨度&#xff0c;价格跨度就是股票价格小于或等于…

Java源码分析(三)ArrayList

ArrayList是我们经常用到的一个集合类&#xff0c;那么本篇我们一起学习下ArrayList的源码。 一、创建ArrayList 首先&#xff0c;我们从创建ArrayList开始。如下代码&#xff0c;创建一个空的ArrayList&#xff1a; List<String> list new ArrayList<>(); 看下…

从零开始开发企培源码:搭建企业内训小程序的全面指南

在当今竞争激烈的企业世界中&#xff0c;不断提升员工的技能和知识已经成为了保持竞争力的必要条件之一。因此&#xff0c;越来越多的企业开始重视内部培训&#xff0c;以确保员工具备所需的技能和知识。为了更有效地进行内部培训&#xff0c;许多企业都在考虑开发自己的企业内…

【网络通信三要素】TCP与UDP快速入门

网络通信三要素 1.什么是网络编程&#xff1f; 可以让设备中的程序&#xff0c;与网络上其他设备中的程序进行数据交互&#xff0c;从而实现网络通信的手段&#xff0c;java.net.*包下提供了网络编程的解决方案 2.基本的通信架构 基本的通信架构有2种形式&#xff1a;CS架构…

力扣-404.左叶子之和

Idea attention&#xff1a;先看清楚题目&#xff0c;题目说的是左叶子结点&#xff0c;不是左结点【泣不成声】 遇到像这种二叉树类型的题目呢&#xff0c;我们一般还是选择dfs&#xff0c;然后类似于前序遍历的方式加上判断条件即可 AC Code class Solution { public:void d…

利用GPIO中断实现的温度显示器

硬件设计&#xff1a; 软件设计&#xff1a; /****************************************************************************** * * Copyright (C) 2009 - 2014 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obta…

nginx高可用配置(五)

keepalived keepalived安装 1.#进入根目录下的 usr目录 cd /usr 2.#安装keepalived yum install keepalived -y 3.安装完成后在根目录etc下会有个keepalived目录 4.进入keepalived目录 cd keepalived/ 5.ll命令查看&#xff0c;会有个配置文件 keepalived.conf 6.ke…