• 回顾封装、继承和多态的概念,并给出相关示例


      封装、继承和多态是面向对象编程(OOP)的三个核心概念。下面我将分别解释这些概念,并给出相应的示例。

    封装

    概念:封装是将数据(变量)和操作数据的方法(函数)组合到一个类中,并通过访问修饰符(如public、private、protected)来限制对数据的访问级别。封装可以隐藏类的内部实现细节,只提供必要的接口与外部交互,从而增强代码的安全性和可维护性。

    示例

    public class Person {
    private String name; // 私有变量,只能在类内部访问
    private int age;
    // 提供公共的getter和setter方法来访问和修改私有变量
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }
    }

    继承

    概念:继承允许我们创建一个新的类(子类或派生类),它继承自一个已存在的类(父类或基类)的属性和方法。子类可以添加新的属性和方法,也可以重写父类的方法。继承提高了代码的复用性,使得代码更加易于维护和管理。

    示例

    public class Animal {
    void eat() {
    System.out.println("Animal eats");
    }
    }
    public class Dog extends Animal { // Dog类继承自Animal类
    void bark() {
    System.out.println("Dog barks");
    }
    // 重写父类的eat方法
    @Override
    void eat() {
    System.out.println("Dog eats dog food");
    }
    }

    多态

    概念:多态是指同一操作作用于不同的对象,可以有不同的解释和执行结果。在Java中,多态主要通过方法的重写(Override)和重载(Overload)来实现。同时,多态也体现在父类引用指向子类对象时,可以调用子类重写后的方法。

    示例(重写导致多态):

    public class Main {
    public static void main(String[] args) {
    Animal animal = new Dog(); // 父类引用指向子类对象
    animal.eat(); // 输出 "Dog eats dog food",因为Dog类重写了eat方法
    }
    }

    示例(重载导致多态,但重载通常不直接涉及子类与父类的关系):

    public class Calculator {
    // 重载add方法,接受两个int参数
    int add(int a, int b) {
    return a + b;
    }
    // 重载add方法,接受两个double参数
    double add(double a, double b) {
    return a + b;
    }
    public static void main(String[] args) {
    Calculator calc = new Calculator();
    int sum1 = calc.add(2, 3); // 调用int版本的add方法
    double sum2 = calc.add(2.5, 3.5); // 调用double版本的add方法
    System.out.println("Sum1: " + sum1); // 输出 "Sum1: 5"
    System.out.println("Sum2: " + sum2); // 输出 "Sum2: 6.0"
    }
    }

    以上示例展示了面向对象编程中封装、继承和多态的基本概念及其用法。

  • 相关阅读:
    数据-OLTP、OLAP
    [Linux]下制作myshell
    Redis:详解5大数据类型及其常用命令
    In-Place操作及onnx导出
    WebGL笔记:使用鼠标绘制多个线条应用及绘制动感线性星座
    LeetCode_424_替换后的最长重复字符
    绝了,没有程序员追不到的女友?
    C++ Color the ball
    【Java对象实例与文件之间互转】
    绿色信贷数据合集(更新至2021年)
  • 原文地址:https://blog.csdn.net/m0_46552684/article/details/139261578