Java日常练习题,每天进步一点点(38)

Java日常练习题,每天进步一点点(38)

题目描述

定义父类People,创建子类VIP,编写一个测试类Test,在测试类里面,创建两个People的对象和两个VIP的对象并赋值,然后分别调用他们的属性与方法

题目思路

本题考察了Java面向对象的三大特性:封装、继承、多态。People作为父类,VIP作为子类,VIP拥有自己的新属性和方法。在测试类中,定义了四个对象,即可以通过父类的对象调用父类的属性和方法,也可以通过子类的对象调用自己特有的新属性和方法。

题目解答

首先,我们需要定义People类,定义它的属性和方法,代码如下:

public class People {
    private String name;
    private int age;

    public People(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return this.name;
    }

    public int getAge() {
        return this.age;
    }

    public void eat() {
        System.out.println("I'm eating");
    }

    public void sleep() {
        System.out.println("I'm sleeping");
    }
}

然后,我们定义VIP类,继承People,并新增了新的属性和方法,代码如下:

public class VIP extends People {
    private int level;

    public VIP(String name, int age, int level) {
        super(name, age);
        this.level = level;
    }

    public int getLevel() {
        return this.level;
    }

    public void watchMovie() {
        System.out.println("I'm watching movie");
    }

    public void comment() {
        System.out.println("I'm commenting");
    }
}

最后,我们编写测试类Test,创建两个People对象和两个VIP对象,并分别调用他们的属性与方法,代码如下:

public class Test {
    public static void main(String[] args) {
        People p1 = new People("Tom", 18);
        People p2 = new People("Jerry", 20);
        VIP v1 = new VIP("Jack", 25, 1);
        VIP v2 = new VIP("Rose", 30, 2);

        System.out.println(p1.getName() + " " + p1.getAge());
        p1.eat();
        p1.sleep();

        System.out.println(p2.getName() + " " + p2.getAge());
        p2.eat();
        p2.sleep();

        System.out.println(v1.getName() + " " + v1.getAge() + " " + v1.getLevel());
        v1.eat();
        v1.sleep();
        v1.watchMovie();
        v1.comment();

        System.out.println(v2.getName() + " " + v2.getAge() + " " + v2.getLevel());
        v2.eat();
        v2.sleep();
        v2.watchMovie();
        v2.comment();
    }
}

程序输出结果如下:

Tom 18
I'm eating
I'm sleeping
Jerry 20
I'm eating
I'm sleeping
Jack 25 1
I'm eating
I'm sleeping
I'm watching movie
I'm commenting
Rose 30 2
I'm eating
I'm sleeping
I'm watching movie
I'm commenting

可以看到,我们成功地创建了People和VIP两个类,并通过测试类Test实现了它们的实例化和属性与方法的调用。

示例说明

示例一:

如果我们把People的构造方法改成默认构造方法,会怎么样?

答:会报错,因为我们在VIP的构造方法中使用了super关键字调用父类的构造方法,而父类的构造方法已经不是默认构造方法了。

示例二:

如果我们新增一个VIP子类的子类SVIP,会怎么样?

答:继承VIP,并再新增自己的新属性和方法即可。在测试类中,我们需要创建两个VIP对象和两个SVIP对象并分别调用他们的属性与方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java日常练习题,每天进步一点点(38) - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C语言入门篇–初识C语言及数据类型

    C语言入门篇–初识C语言及数据类型 一、C语言概述 C语言是一种高级编程语言,它可以编写底层的系统软件和高级的应用程序。它在计算机领域中的优势在于它快速、高效、稳定,且是一种跨平台的语言。 二、数据类型 在C语言中,数据类型用于定义不同类型的变量。C语言提供了许多内置的数据类型,例如int、float、char等等。 1.整数型(int) 整数型是最基本的…

    C 2023年5月23日
    00
  • 如何修复0xc000007b?win7/win10一键修复0xc000007b的方法

    下面是详细讲解 “如何修复0xc000007b?win7/win10一键修复0xc000007b的方法” 的完整攻略: 1. 什么是0xc000007b错误? 0xc000007b是Windows操作系统中常见的错误代码之一,表示应用程序无法正常启动。通常发生在程序启动时,弹出一个错误窗口,提示“应用程序无法正常启动,错误代码为0xc000007b”。 2.…

    C 2023年5月23日
    00
  • 使用python获取cpu每秒的使用率

    下面是详细讲解“使用python获取cpu每秒的使用率”的完整攻略。 1. 确认获取CPU使用率的目标平台和Python版本 在开始之前,我们需要确认我们要获取CPU使用率的平台和Python版本。因为不同的平台和Python版本可能有不同的获取方式。例如,Windows和Linux下获取CPU使用率的方式可能就不一样,Python 2.x和Python 3…

    C 2023年5月23日
    00
  • C++ 中const对象与const成员函数的实例详解

    下面是对 “C++ 中const对象与const成员函数的实例详解” 的详细讲解: 什么是 const 对象? const 对象:指一旦被初始化后就不能被修改的对象。 const 对象必须在创建时进行初始化,因为一旦创建后就不能再改变它的值。 访问一个 const 对象的地址是完全合法的。 普通的 const 对象 看以下代码示例: #include &lt…

    C 2023年5月22日
    00
  • c++实现简单的线程池

    c++实现简单的线程池,是一种常用的并发编程技术,用于提高程序的并行度和执行效率。下面我将为您提供实现线程池的完整攻略。 什么是线程池? 线程池是一种池化技术,用于管理和复用线程资源,避免频繁的线程创建和销毁。线程池中会预先创建一定数量的线程,并维护一个任务队列,当需要执行任务时,从队列中获取一个任务分配给线程执行。任务执行完毕后,线程回收到线程池中。 实现…

    C 2023年5月22日
    00
  • solaris迅速查找手册

    Solaris迅速查找手册使用攻略 简介 Solaris(索拉里斯)是Sun公司开发的一款Unix操作系统。本攻略主要介绍如何使用solaris快速查找手册。 步骤 步骤一:使用man命令查找手册 man命令是Solaris系统中用来查看手册页面的命令,其用法如下: man [ section ] name 其中,section表示手册所属的区段,name表…

    C 2023年5月22日
    00
  • C语言 strcspn()函数

    下面是关于C语言中strcspn()函数的完整使用攻略。 strcspn()函数介绍 strcspn()函数是一个C语言标准库函数,用于查找字符串中第一个不在另一个字符串中出现的字符的位置,并返回该位置。 函数原型如下: size_t strcspn(const char *str1, const char *str2); 它的第一个参数为要查找的字符串,第…

    C 2023年5月9日
    00
  • Linux网络编程之UDP Socket程序示例

    下面是关于使用UDP Socket进行Linux网络编程的攻略及示例. UDP Socket编程简介 UDP全称User Datagram Protocol,是一种无连接的,不可靠的面向数据报的传输协议,采用UDP传输需要自行保证数据的可靠性和完整性。因为UDP通信无连接,所以它发送的数据报文既不需要建立连接,也不需要断开连接,数据报文也不需要发送端和接收端…

    C 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部