Program:

编程实现Person类,学生类的设计及其继承关系

代码如下:

定义抽象类Person

  1 /*
2 * Description:建立抽象类
3 *
4 * Written By:Cai
5 *
6 * Date Written:2017-10-17
7 *
8 * */
9
10
11 package resource;
12
13 public abstract class Person {
14
15 private String name;   //姓名
16 private int age;   //年龄
17 private String sex;    //性别
18 private String address;    //地址
19 private String telephone;    //电话
20
21 //定义构造方法
22
23 public Person() {}
24
25 public Person(String name, int age, String sex, String address,
26 String telephone) {
27
28 this.name = name;
29 this.age = age;
30 this.sex = sex;
31 this.address = address;
32 this.telephone = telephone;
33 }
34
35 //定义setter()和getter()方法
36
37 public String getName() {
38 return name;
39 }
40
41 public void setName(String name) {
42 this.name = name;
43 }
44
45 public int getAge() {
46 return age;
47 }
48
49 public void setAge(int age) {
50 this.age = age;
51 }
52
53 public String getSex() {
54 return sex;
55 }
56
57 public void setSex(String sex) {
58 this.sex = sex;
59 }
60
61 public String getAddress() {
62 return address;
63 }
64
65 public void setAddress(String address) {
66 this.address = address;
67 }
68
69 public String getTelephone() {
70 return telephone;
71 }
72
73 public void setTelephone(String telephone) {
74 this.telephone = telephone;
75 }
76
77 //覆写toString()方法
78 @Override
79 public String toString() {
80 return "Person [name=" + name + ", age=" + age + ", sex=" + sex
81 + ", address=" + address + ", telephone=" + telephone + "]";
82 }
83
84 //使用模板模式,定义好简单模板,打印信息
85 /*
86 * 模板模式为面向对象设计模式之一,其大概思想(个人理解):
87 * 在抽象方法中完成已经确定的内容,而不确定的部分,写成抽象方法并调用
88 * 而抽象方法的具体实现,交给继承他的类去具体实现,
89 * 这样开发人员只要写好自己的实现部分便可,然后在主方法中,
90 * 通过实例化后的抽象类直接调用模板方法便可
91 *
92 * 以下方法只是一个简单的表示
93 *
94 * */
95 public void display() {
96
97 System.out.println( this ); //公共部分
98 System.out.println("-------------------风骚java分割线-----------------");
99 getInfo();           //开发人员具体的实现
100 System.out.println("-------------------风骚java分割线-----------------");
101 System.out.println( "本输出方法采用模板设计模式,以上为学生信息!" ); //公共部分
102
103 }
104
105 //声明抽象方法,打印子类的添加信息
106 public abstract void getInfo();
107
108
109 }

定义Student类,继承抽象类

 1 /*
2 * Description:定义学生类,继承Person方法
3 *
4 * Written By:Cai
5 *
6 * Date Written:2017-10-17
7 *
8 * */
9
10
11 package resource;
12
13 public class Student extends Person {
14
15 private String sno; //学号
16 private String className;   //班级
17
18 //定义构造方法
19 public Student(String name, int age, String sex, String address,
20 String telephone,String sno,String className) {
21
22 super(name,age,sex,address,telephone);
23 this.sno = sno;
24 this.className = className;
25 }
26
27
28 //定义setter()和getter()方法
29 public String getSno() {
30 return sno;
31 }
32
33 public void setSno(String sno) {
34 this.sno = sno;
35 }
36
37 public String getClassName() {
38 return className;
39 }
40
41 public void setClassName(String className) {
42 this.className = className;
43 }
44
45
46 //实现父类抽象方法
47 @Override
48 public void getInfo() {
49
50 System.out.println( "学号:" + this.getSno() + "\t班级:" + this.getClassName() );
51 }
52
53 }

Java实验项目三——编程实现Person类,学生类的设计及其继承关系的更多相关文章

  1. Java实验项目三——职工类对象数组按照职工生日排序

    Program: 修改项目三(1)中的第3题,实现比较方法,将对象数组的数据按照生日的大小给职工排序. Description:令日期类MyDate和员工类Worker类实现接口Comparable, ...

  2. Java实验项目三——宠物商店

    Program:宠物商店的设计(继承,接口,线性线性表) Description:本题未实现图形用户界面,项目结构描述如下: classes.Pet:定义宠物接口,只要实现该接口的宠物类,都可存储进宠 ...

  3. Java实验项目三——面向对象定义职工类和日期类

    Program:按照如下要求设计类: (1)设计一个日期类,用于记录年.月.日,并提供对日期处理的常用方法. (2)设计一个职工类,该职工类至少具有下面的属性:职工号,姓名,性别,生日,工作部门,参加 ...

  4. Java实验项目三——平面图形和立体图形抽象类

    Program:按照下面要求完成类的设计 (1)设计一个平面图形抽象类和一个立体图形抽象类,提供该类对象公共的方法和属性. (2)修改项目三中第2题中所设计的球类.圆柱类,圆锥类.矩形类.三角形类.圆 ...

  5. Java实验项目三——简单工厂模式

    Program: 请采用采用简单工厂设计模式,为某个汽车销售店设计汽车销售系统,接口car至少有方法print(), 三个汽车类:宝马.奥迪.大众 (属性:品牌,价格),在测试类中根据客户要求购买的汽 ...

  6. Java实验项目三——采用面向对象的方式设计线性表

    Program: 采用面向对象的方法设计一个线性表,目的是为其他需要用线性表的应用提供线性表对象. 1.list包中,定义线性表类 1 /* 2 * Description:定义线性表类 3 * 4 ...

  7. Java实验项目三——递归实现字符串查找和替换操作

    Program:按照下面要求实现字符串的操作: (1)设计一个提供下面字符串操作的类 1)编写一个方法,查找在一个字符串中指定字符串出现的次数. 2)编写一个方法,参数(母字符串,目标字符串,替换字符 ...

  8. 20135231 JAVA实验报告三:敏捷开发与XP实践

    ---恢复内容开始--- JAVA实验报告三:敏捷开发与XP实践 20135231 何佳 实验内容 1. XP基础 2. XP核心实践 3. 相关工具 实验要求 1.没有Linux基础的同学建议先学习 ...

  9. 20165324 Java实验五 网络编程与安全

    20165324 Java实验五 网络编程与安全 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:何春江 学号:20165324 指导教师:娄嘉鹏 实验日期:2018年5月28日 实 ...

随机推荐

  1. Oracle中Table函数简单应用实例

    说明 表函数可接受查询语句或游标作为输入参数,并可输出多行数据. 该函数可以平行执行,并可持续输出数据流,被称作管道式输出. 应用表函数可将数据转换分阶段处理,并省去中间结果的存储和缓冲表. 优势 1 ...

  2. redux 源码浅析

    redux 源码浅析 redux 版本号: "redux": "4.0.5" redux 作为一个十分常用的状态容器库, 大家都应该见识过, 他很小巧, 只有 ...

  3. MyBatis-框架使用和分析

      一.基础知识 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL.存储过程以及高级映射.MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作.MyBatis 可 ...

  4. 关于一类docker容器闪退问题定位

    背景:正在学习docker期间,接到一个任务,通过docker部署一个应用A.该应用A类似于之前部署的应用B,结果很自然地犯了形而上学的错误. 思路:基于dockerfile+docker-compo ...

  5. 用Redis实现签到功能

    一.场景 在很多时候我们会遇到用户签到的场景,每天用户进入应用时,需要获取用户当天的签到状态,如果没签到,用户可以进行签到,并且得到相关的奖励.我们可能需要每天的签到情况,必要的时候可能还需要统计一下 ...

  6. .NET平台系列24:从.NET Framework迁移到.NET Core/.NET5的技术指南

    系列目录     [已更新最新开发文章,点击查看详细] 本文讲解了在将代码从 .NET Framework 移植到 .NET(旧称为 .NET Core)时应考虑的事项. 对于许多项目,从 .NET ...

  7. 『动善时』JMeter基础 — 43、JMeter对数据库的查询操作

    目录 1.使用"用户自定义变量"实现参数化 2. 在SQL Query中使用占位符传递参数 (1)传递的参数值是常量 (2)传递的参数值是变量 3.Variables names参 ...

  8. Kubernetes 实战——发现应用(Service)

    一.简介 服务:一种为一组功能相同的 Pod 提供单一不变的接入点的资源.服务 IP 和端口不会改变 对服务的连接会被路由到提供该服务的任意一个 Pod 上(负载均衡) 服务通过标签选择器判断哪些 P ...

  9. 无规矩不成方圆,聊一聊 Spring Boot 中 RESTful 接口设计规范

    在设计接口时,有很多因素要考虑,如接口的业务定位,接口的安全性,接口的可扩展性.接口的稳定性.接口的跨域性.接口的协议规则.接口的路径规则.接口单一原则.接口过滤和接口组合等诸多因素,本篇文章将简要分 ...

  10. 面试官:如何在分布式场景下生成全局唯一 ID?

    在分布式系统中,有一些场景需要使用全局唯一 ID ,可以和业务场景有关,比如支付流水号,也可以和业务场景无关,比如分库分表后需要有一个全局唯一 ID,或者用作事务版本号.分布式链路追踪等等,好的全局唯 ...