博客
关于我
继承案例分析一(学生类)
阅读量:339 次
发布时间:2019-03-04

本文共 1797 字,大约阅读时间需要 5 分钟。

Java继承关系的案例分析

通过设计和实现简单的Java类,能够帮助开发者巩固继承关系的概念。对于编程而言,基本的Java类是构建应用程序的基石,也是理解各种概念的最佳载体。

案例一:Person类与Student类的设计

目标:

  • 创建一个Person类,包含姓名、地址、性别和年龄这四个私有属性。
  • 为该类设计四种不同的构造方法:
    • 四参数构造方法(接受姓名、地址、性别和年龄)。
    • 两参数构造方法(接受姓名和地址,默认性别为“男”,年龄为0)。
    • 无参数构造方法。
  • 增加一个getInfo()方法,用于返回四个属性的值。
  • 实现:

    class Person {    private String name; // 姓名    private String addr; // 地址    private char sex;  // 性别    private int age;   // 年龄    public Person() { } // 无参数构造方法    public Person(String name, String addr) {        this(name, addr, '男', 0);    }    public Person(String name, String addr, char sex, int age) {        this.name = name;        this.addr = addr;        this.sex = sex;        this.age = age;    }    public String getInfo() {        return "姓名:" + this.name + "\t地址:" + this.addr + "\t性别:" + this.sex + "\t年龄:" + this.age;    }}

    扩展:Student类

    Student类继承自Person类,增加两个私有属性mathenglish来存储数学和英语成绩。

  • 设计三种构造方法:
    • 六参数构造方法(接受姓名、地址、性别、年龄、数学成绩和英语成绩)。
    • 两参数构造方法(接受姓名和地址,其他属性默认值)。
    • 无参数构造方法。
  • 重写getInfo()方法,返回学生的全部属性信息。
  • 实现:

    class Student extends Person {    private double math; // 数学成绩    private double english; // 英语成绩    public Student() { } // 无参数构造方法    public Student(String name, String addr) {        super(name, addr);    }    public Student(String name, String addr, char sex, int age, double math, double english) {        super(name, addr, sex, age);        this.math = math;        this.english = english;    }    public String getInfo() {        return super.getInfo() + "数学成绩:" + this.math + "\t英语成绩:" + this.english;    }}

    使用示例:

    public class JavaDemo {    public static void main(String[] args) {        Student stuA = new Student(12.3, 99.2, "张三", "湖南", '男', 18);        System.out.println(stuA.getInfo());    }}

    总结

    通过上述案例,可以清晰地看到Java继承关系的实际应用。Student类继承Person类,继承了所有基本属性和方法,同时新增了特有的属性和方法。这是Java面向对象编程的核心概念,也是理解更复杂继承关系的基础。

    转载地址:http://aqwe.baihongyu.com/

    你可能感兴趣的文章
    Netty源码—6.ByteBuf原理一
    查看>>
    Netty源码—6.ByteBuf原理二
    查看>>
    Netty源码—7.ByteBuf原理三
    查看>>
    Netty源码—7.ByteBuf原理四
    查看>>
    Netty源码—8.编解码原理一
    查看>>
    Netty源码—8.编解码原理二
    查看>>
    Netty源码解读
    查看>>
    Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
    查看>>
    Netty相关
    查看>>
    Netty遇到TCP发送缓冲区满了 写半包操作该如何处理
    查看>>
    Netty:ChannelPipeline和ChannelHandler为什么会鬼混在一起?
    查看>>
    Netty:原理架构解析
    查看>>
    Network Dissection:Quantifying Interpretability of Deep Visual Representations(深层视觉表征的量化解释)
    查看>>
    Network Sniffer and Connection Analyzer
    查看>>
    Network 灰鸽宝典【目录】
    查看>>
    NetworkX系列教程(11)-graph和其他数据格式转换
    查看>>
    Networkx读取军械调查-ITN综合传输网络?/读取GML文件
    查看>>
    network小学习
    查看>>
    Netwox网络工具使用详解
    查看>>
    Net与Flex入门
    查看>>