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

Java面向对象的三大特性

## 1. 封装(Encapsulation)

封装是将数据和操作数据的方法绑定在一起,对外部隐藏对象的具体实现细节。通过访问修饰符来实现封装。

  

示例代码:

  

```java

public class Student {

    // 私有属性

    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) {

        if (age > 0 && age < 120) {

            this.age = age;

        }

    }

}

```

  

## 2. 继承(Inheritance)

继承允许我们创建一个类作为另一个类的基础,继承父类的属性和方法。

  

示例代码:

  

```java

// 父类

public class Animal {

    protected String name;

    public void eat() {

        System.out.println(name + "正在吃东西");

    }

}

  

// 子类

public class Dog extends Animal {

    public Dog(String name) {

        this.name = name;

    }

    public void bark() {

        System.out.println(name + "在汪汪叫");

    }

}

```

  

## 3. 多态(Polymorphism)

多态允许我们以不同的方式执行同一个操作,包括方法重写(运行时多态)和方法重载(编译时多态)。

  

示例代码:

  

```java

// 父类

public class Shape {

    public double getArea() {

        return 0;

    }

}

  

// 子类1

public class Circle extends Shape {

    private double radius;

    public Circle(double radius) {

        this.radius = radius;

    }

    @Override

    public double getArea() {

        return Math.PI * radius * radius;

    }

}

  

// 子类2

public class Rectangle extends Shape {

    private double width;

    private double height;

    public Rectangle(double width, double height) {

        this.width = width;

        this.height = height;

    }

    @Override

    public double getArea() {

        return width * height;

    }

}

  

// 使用多态

public class Main {

    public static void main(String[] args) {

        Shape circle = new Circle(5);

        Shape rectangle = new Rectangle(4, 6);

        System.out.println("圆的面积:" + circle.getArea());

        System.out.println("矩形的面积:" + rectangle.getArea());

    }

}
 

相关文章:

  • ClickHouse 设计与细节
  • Python 设计模式:模板模式
  • 安宝特方案 | 医疗AR眼镜,重新定义远程会诊体验
  • Qt -对象树
  • CSS预处理器对比:Sass、Less与Stylus如何选择
  • 操作系统之shell实现(下)
  • Laravel 对接阿里云 OSS 说明文档
  • GPIO(通用输入输出端口)详细介绍
  • 【Qt】控件的理解 和 基础控件 QWidget 属性详解(通俗易懂+附源码+思维导图框架)
  • PyTorch卷积层填充(Padding)与步幅(Stride)详解及代码示例
  • 深入理解 Spring @Configuration 注解
  • PyTorch深度学习框架60天进阶学习计划 - 第48天:移动端模型优化(二)
  • 4.22tx视频后台开发一面
  • 【愚公系列】《Python网络爬虫从入门到精通》063-项目实战电商数据侦探(主窗体的数据展示)
  • 前端框架的“快闪“时代:我们该如何应对技术迭代的洪流?
  • 媒体关注:联易融聚焦AI+业务,重塑供应链金融生态
  • CAD在线查看免费,可以支持DWG/GLB/GLTF/doc/wps/pdf/psd/eml/zip, rar/MP3/MP4/svg/OBJ/FBX格式
  • 2025年数字媒体设计与文化交流国际会议 (DMACE 2025)
  • 【Redis】字符串类型List 常用命令详解
  • 基于 PaddleOCR对pdf文件中的文字提取
  • 教培机构向学员提供盗版教材,法院:应承担著作权侵权责任
  • A股三大股指集体高开,黄金股大幅回调
  • 世界地球日丨上海交响乐团牵手上海植物园,为“树”写交响曲
  • 山东省淄博市委原常委宋振波被“双开”
  • 周继红连任中国跳水协会主席
  • 洛阳白马寺存争议的狄仁杰墓挂牌,当地文物部门:已确认