当前位置: 首页 > article >正文

Java基础编程练习第32题-定义接口(Biology、Animal)、类(Person)、子类(Pupil)(PTA选题)

一、解题

通过这道题我们可以深入学习Java语言的继承,接口的定义。

题目:

分析:

此题其实和前面我们28,29题没有相差很大,只不过在类的基础上我们需要学习接口的定义,以及继承是如何实现的。我们直接对照代码逐句分析:

import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        Pupil zhangsan = new Pupil();


        String schoolName = scanner.nextLine();
        zhangsan.setSchool(schoolName);

        // 输出学校信息
        System.out.println("我的学校是" + zhangsan.getSchool());
       
        // 调用方法,直接调用
        zhangsan.breathe();
        zhangsan.eat();
        zhangsan.sleep();
        zhangsan.think();
    }
}
//定义Biology接口
interface Biology{
    void breathe();
}
//定义Animal接口
interface Animal{
    void eat();
    void sleep();
}

//定义Person类实现Biology和Animal接口

class Person implements Biology,Animal{
    @Override
    public void breathe() {
        System.out.println("我喜欢呼吸新鲜空气");
    }
    public void eat() {
        System.out.println("我会按时吃饭");
    }

    public void sleep() {
        System.out.println("早睡早起身体好");
    }
//这个是Person类自己的方法
    public void think() {
        System.out.println("我喜欢思考");
    }
}

//定义子类Pupil类继承Person类
//根据题意定义Person类
class Pupil extends Person{
    private String school;

    public void setSchool(String school){
        this.school = school;
    }
    public String getSchool() {
        return school;
    }
}

二、接口

接口的定义

在Java中,接口(Interface)是一种引用类型,类似于类,用于存放抽象方法和静态变量。接口定义了一个规范,规范实现接口的类应具备哪些方法。

接口的特点

1.接口中只能定义抽象方法和静态常量。抽象方法是没有方法体的方法,静态常量是不可变的变量。

例如:

public interface Animal {
    void eat();
    void sound();
}

这里eat();sound();都没有具体实现,没有方法体。

抽象方法:没有实现体的方法,既它没有花括号和方法体,只有方法签名和一个分号

例如:


    // 抽象方法
    void makeSound();
    
    // 非抽象方法
    void sleep() {
        System.out.println("Animal is sleeping");
    }

2.接口不能被实例化,但可以被实现(implements关键字)或者继承(extends关键字)。

3.一个类可以实现多个接口。

接口的使用

定义接口的基本语法:

[修饰符] interface 接口名称 {
    // 抽象方法
    [返回类型] 方法名称([参数列表]);
    
    // 静态常量
    [修饰符] 类型 常量名称 = 常量值;
    
    // Java 8+ 默认方法
    default [返回类型] 方法名称([参数列表]) {
        // 方法体
    }
    
    // Java 8+ 静态方法
    static [返回类型] 方法名称([参数列表]) {
        // 方法体
    }
}

一个类通过implements关键字实现接口,并必须实现接口中所有的抽象方法。

public class Dog implements Animal {
    public void eat() {
        System.out.println("Dog eats.");
    }

    public void sound() {
        System.out.println("Dog barks.");
    }
}

在这个例子中,Dog类实现了Animal接口,并提供了eat和sound方法的具体实现。

三、继承

在面向对象学习中已经学习过继承了,这里不过多介绍了。

在Java中定义继承的基本语法;

class 父类 {
    // 父类的字段和方法
}

class 子类 extends 父类 {
    // 子类新增的字段和方法
    // 可以选择覆盖父类的方法
}

在这个语法中,extends关键字用于指定子类要继承的父类。

举个例子:

// 定义一个父类
class Vehicle {
    // 父类的字段
    protected String brand = "Ford";  // Vehicle 的品牌

    // 父类的方法
    public void honk() {
        System.out.println("Tuut, tuut!");
    }
}

// 定义一个子类,继承自 Vehicle
class Car extends Vehicle {
    // 子类新增的字段
    private String modelName = "Mustang";  // Car 的模型名称

    // 子类的方法
    public void displayInformation() {
        System.out.println("Model: " + modelName + "; Brand: " + brand);
    }
}

// 主类
public class Main {
    public static void main(String[] args) {
        // 创建 Car 类的实例
        Car myCar = new Car();

        // 调用继承自父类的方法
        myCar.honk();

        // 调用子类自己的方法
        myCar.displayInformation();
    }
}


http://www.kler.cn/a/588371.html

相关文章:

  • 使用c#进行串口通信
  • 商品详情页
  • 第7章 站在对象模型的尖端3: RTTI
  • 考研系列-408真题计算机网络篇(10-17)
  • Centos 7 升级 GCC
  • 找第一个只出现一次的字符(信息学奥塞一本通-1130)
  • 基于大模型的智能客服搭建
  • doris:安全概览
  • R语言:初始环境配置
  • 【实战解析】smallredbook.item_get_video API:小红书视频数据获取与电商应用指南
  • 大语言模型基础--task2:大模型技术基础
  • 【Java】高频面试题
  • 图解多头注意力机制:维度变化一镜到底
  • 完整的模型验证套路
  • NPU的工作原理:神经网络计算的流水线
  • 计算机二级Python资料
  • RabbitMQ(补档)
  • Hive SQL 精进系列:解锁 Hive SQL 中 KeyValue 函数的强大功能
  • 微信小程序刷题逻辑实现:技术揭秘与实践分享
  • sensor数据在整个rk平台的框架流程是怎么样,