JAVA回顾:封装,继承,多态

JAVA回顾:封装、继承、多态

封装

封装是一种将数据和行为(方法)组合在一起的编程模式。在 Java 中,封装通过将属性声明为私有(private)并暴露公开的接口(public)来实现。

示例代码:

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

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        if (age < 0) {
            age = 0;
        }
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

在上述示例代码中,nameage 属性被声明为私有属性。然后使用公开的 setNamesetAge 方法对私有字段进行设置,公开的 getNamegetAge 方法用于获取相应的属性值。通过这样的方式,我们可以限制对属性的直接访问,从而控制方法的使用。

继承

继承是一种编程机制,在一个类中定义另一个类时复用已有的类的方法和属性,在 Java 中使用关键字 extends 实现继承。子类可以访问父类的公开方法和属性,也可以重写这些方法和属性。

示例代码:

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

    public void move() {
        System.out.println("Animal move");
    }
}

public class Bird extends Animal {
    public void fly() {
        System.out.println("Bird fly");
    }

    @Override
    public void move() {
        System.out.println("Bird move");
    }
}

在上述示例代码中,Bird 类继承自 Animal 类,使用 extends 关键字实现。子类 Bird 可以访问父类 Animal 的公开方法 eatmove。子类 Bird 还新增了一个 fly 方法。同时,子类重写了父类 move 方法,当调用 Bird 类的 move 方法时,将会输出 Bird move。这样,子类通过基类的继承和重写,实现了对基类方法和属性的扩展和改变。

多态

多态是指同一种方法在不同的对象上有不同的行为,多态提高代码的灵活性和可扩展性。在 Java 中通过继承、接口、重载和泛型等机制实现多态。

示例代码:

public interface Shape {
    void draw();
}

public class Rectangle implements Shape {
    @Override
    public void draw() {
        System.out.println("Rectangle draw");
    }
}

public class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("Circle draw");
    }
}

public class DrawShape {
    public static void main(String[] args) {
        Shape rectangle = new Rectangle();
        Shape circle = new Circle();
        rectangle.draw();
        circle.draw();
    }
}

在上述示例代码中,定义了一个 Shape 接口,然后通过让 RectangleCircle 类实现 Shape 接口,使得它们具有了共同的 draw() 方法。在 DrawShape 类中,分别实例化了 RectangleCircle 类,并将它们赋值给接口变量 rectanglecircle。调用这两个变量的 draw() 方法时,分别输出了 Rectangle drawCircle draw。这种实现方式,通过接口和继承,实现了对 Shape 抽象类型的多态使用。

总结

封装、继承和多态是 Java 中的基本编程机制,可以用于提供代码的复用性、可扩展性和可维护性。在实际编程过程中,需要结合具体场景具体分析,进行合理的应用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA回顾:封装,继承,多态 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • jmeterjdbcrequest使用详解

    以下是详细讲解“jmeterjdbcrequest使用详解的完整攻略”: jmeterjdbcrequest使用详解 jmeterjdbcrequest是JMeter中用于执行JDBC请求的组件,可以用于测试数据库的性能和稳定性。本攻略将介绍jmeterjdbcrequest的使用方法和常用功能。 步骤一:添加JDBC驱动 在使用jmeterjdbcrequ…

    other 2023年5月10日
    00
  • Java 线程的优先级(setPriority)案例详解

    Java 线程的优先级(setPriority)案例详解 1. 简介 Java多线程中,每个线程都有一个优先级。优先级决定了线程在竞争CPU资源时的相对顺序。线程的优先级范围是1到10,其中1为最低优先级,10为最高优先级。 在Java中,可以使用setPriority方法为线程设置优先级。本文将详细介绍如何使用setPriority方法,并提供两个示例说明…

    other 2023年6月28日
    00
  • C++模拟实现STL容器vector的示例代码

    下面是详细讲解“C++模拟实现STL容器vector的示例代码”的完整攻略。 1. 准备工作 在开始模拟实现STL容器vector之前,需要进行一些准备工作。首先需要了解vector的基本特点和实现方式,其次需要对STL容器的实现方式有一个大概的认识,并且需要对C++的语法和语言特性有一定的掌握。特别是需要熟悉模板、指针、动态内存分配等相关知识。 2. 实现…

    other 2023年6月26日
    00
  • CAD怎么创建块和分解块?

    以下是在CAD软件中创建块和分解块的完整攻略: 创建块 打开CAD软件,并打开您要创建块的绘图文件。 选择要创建块的对象,可以是单个对象或多个对象。 在CAD软件的菜单栏中,找到“编辑”或“修改”等选项,点击打开下拉菜单。 在下拉菜单中,找到“创建块”或类似的选项,点击进入块创建界面。 在块创建界面中,输入块的名称,并根据需要设置其他属性,如插入点、旋转角度…

    other 2023年10月16日
    00
  • Java动态加载类示例详解

    Java动态加载类示例详解 Java动态加载类是一个非常有用的技术,它允许在程序运行期间动态地加载类,并在运行期间使用这些类。本文将详细介绍Java动态加载类的基本原理和使用方法,包括两个相关的示例。 动态加载类的基本原理 Java动态加载类的基本原理是使用ClassLoader类。ClassLoader是Java中用于动态加载类的一个抽象类,它定义了类的加…

    other 2023年6月25日
    00
  • PS怎么将图片变成拼图效果的图?

    要将一张图片变成拼图效果的图,可以使用Photoshop软件,以下是详细攻略: 步骤一:打开图片 在Photoshop中,找到“文件”菜单,选择“打开”,在弹出的文件选择框中选择需要编辑的图片,点击“打开”按钮即可打开该图片。 步骤二:新建图层 在Photoshop中,找到“图层”菜单,选择“新建”,在弹出的菜单中选择“图层”,输入图层名称,点击确定。 步骤…

    other 2023年6月27日
    00
  • matlab中函数fscanf

    matlab中函数fscanf 在MATLAB中,我们经常需要处理文本文件中的数据。可以使用MATLAB中的fscanf函数来读取文本文件中的数据。fscanf函数提供了一种灵活的方法来解析文本数据,它可以将数据读入矩阵或向量中。本篇文章将介绍MATLAB中fscanf函数的使用方法。 fscanf函数的基本语法 fscanf函数的语法如下所示: A = f…

    其他 2023年3月29日
    00
  • CSS 嵌套DIV布局(position属性)

    CSS 嵌套DIV布局(position属性)攻略 在CSS中,使用position属性可以控制元素的定位方式。嵌套DIV布局是一种常见的布局技术,通过使用position属性,可以实现更复杂的布局效果。下面是详细的攻略,包含两个示例说明。 1. position属性的取值 position属性有以下几个取值: static:默认值,元素按照正常文档流进行布…

    other 2023年7月28日
    00
合作推广
合作推广
分享本页
返回顶部