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++ 中try finally关键字详解

    C++ 中try finally关键字详解 在 C++ 中,try finally 是异常处理中的关键字,用于捕获异常并在异常被抛出后执行某些操作。本文将详细讲解try finally关键字的用法和相关注意事项。 try finally的基本用法 try finally 可以用于在程序抛出异常后执行一些特殊操作,比如释放资源、断开连接等等。 try fina…

    C 2023年5月23日
    00
  • C语言实现简单学生信息管理系统

    C语言实现简单学生信息管理系统 概述 学生信息管理系统是一个常见的小型项目,可以通过C语言进行实现。本文将介绍如何使用C语言实现一个简单的学生信息管理系统。 功能要求 学生信息管理系统应该具备以下功能:1. 添加学生信息2. 修改学生信息3. 删除学生信息4. 打印学生信息5. 退出系统 基本思路 我们可以通过定义一个结构体来表示一个学生的相关信息,然后将多…

    C 2023年5月23日
    00
  • C++ 程序员为什么看不起php程序员

    下面是详细讲解“C++ 程序员为什么看不起PHP程序员”的完整攻略: 1. C++ 程序员对 PHP 的不满 1.1 动态类型 C++ 是一门强类型的编程语言,程序员必须显式地声明每一个变量的类型。这也为程序员带来了更高的代码质量和执行效率。而 PHP 是一门弱类型的编程语言,它不强制声明变量的类型,这使得代码难以理解和调试。从此角度来说,C++ 程序员对 …

    C 2023年5月30日
    00
  • Node.js API详解之 net模块实例分析

    首先,我们需要了解什么是Node.js的API。API全称是Application Programming Interface,它是软件系统不同组件之间的交互接口。Node.js提供了一个强大的API库,包括了许多内置的模块,来支持应用程序的开发与部署。其中net是Node.js提供的一个核心模块,它提供了一个异步的网络接口,用于创建TCP和UNIX客户端/…

    C 2023年5月23日
    00
  • C语言 strncmp()函数

    当我们需要比较两个字符串时,可以使用C语言中的strncmp()函数。以下是有关此函数的完整使用攻略: 函数介绍 strncmp()函数用于比较两个字符串的前n个字符。此函数返回值是一个int类型,0表示两个字符串相等,1表示第一个字符串大于第二个字符串,-1表示第二个字符串大于第一个字符串。 函数语法 strncmp(const char str1, co…

    C 2023年5月9日
    00
  • 一篇文章带你实现C语言中常用库函数的模拟

    一篇文章带你实现C语言中常用库函数的模拟 在学习C语言的过程中,我们经常会用到一些常用的库函数,比如字符串处理函数strlen()、内存处理函数memcpy()等等。这些库函数能够方便地完成一些操作,但我们有时候需要自己手动实现这些函数,以便更好地理解它们的原理和实现方法。本文将带你实现C语言中常用库函数的模拟。 1. strlen() 功能描述 strle…

    C 2023年5月23日
    00
  • C语言实现图的搜索算法示例

    C语言实现图的搜索算法示例 在C语言中,我们可以使用邻接矩阵或邻接表来表示图,实现图的搜索算法,本篇文章将详细介绍如何使用C语言实现图的搜索算法,以及提供两个示例说明。 邻接矩阵表示图 邻接矩阵是使用二维数组表示图的一种方法,其中数组的每个元素代表图中的一个节点,如果两个节点之间存在边,则数组元素的值为1,否则为0。例如,下面是一个由邻接矩阵表示的无向图。 …

    C 2023年5月23日
    00
  • 关于背包问题的一些理解和应用

    关于背包问题的一些理解和应用 背包问题是什么? 背包问题是一类经典的组合优化问题,它的主要思想是在给定限制条件下,选择最优的物品放入背包中,使得背包中物品的总价值最大化。背包问题存在多个变体,其中最常见的是0/1背包问题和完全背包问题。 0/1背包问题:每个物品只能选择一次,可以表示为选择或不选择两种状态。 完全背包问题:每个物品可以选择多次,可以表示为选择…

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