浅谈java 面对对象(抽象 继承 接口 多态)

yizhihongxing

浅谈Java面向对象

什么是面向对象

面向对象编程(Object-Oriented Programming,缩写为OOP)是一种计算机编程架构,是一个将真实世界抽象为一系列对象并通过对象之间的交互来描述程序的架构。OOP的核心思想是将程序中的数据和行为进行组合和封装,同时继承和多态机制让程序变得更加灵活。

抽象

抽象是OOP的一个重要概念,它将现实中的复杂问题进行简化,从而更容易理解和处理。在Java中,可以通过抽象类和接口来实现抽象。

抽象类

抽象类是一种不能直接创建对象的类,只能被继承和实现的类。它可以拥有成员变量、构造方法、普通方法和抽象方法。抽象方法是一种没有实现的方法,它只含有方法定义和方法声明,具体的实现由子类来完成。

示例:

abstract class Shape {
    double area;

    public Shape() {
    }

    public abstract void computeArea();
}

class Circle extends Shape {
    double radius;

    public Circle(double r) {
        radius = r;
    }

    public void computeArea() {
        area = Math.PI * radius * radius;
    }
}

接口

接口是一种Java中的特殊类型,它定义一个包含一些抽象方法的类。接口定义了一些方法,但是并没有提供具体的实现,其实现由其他类来完成。

示例:

interface Drawable {
    void draw();
}

class Circle implements Drawable {
    public void draw() {
        System.out.println("Drawing Circle");
    }
}

class Rectangle implements Drawable {
    public void draw() {
        System.out.println("Drawing Rectangle");
    }
}

继承

继承是OOP中一个重要的机制,它允许创建一个新的类,从而通过重用已有类中的成员变量和方法来减少重复代码,并且可以实现多态。

示例:

class Animal {
    String name;

    public Animal(String name) {
        this.name = name;
    }

    public void move() {
        System.out.println(name + " is moving");
    }
}

class Bird extends Animal {
    public Bird(String name) {
        super(name);
    }

    public void fly() {
        System.out.println(name + " is flying");
    }
}

多态

多态是OOP的又一个重要机制,它允许子类类型的对象被当作父类类型的对象使用,从而提高程序的灵活性。多态指的是同一个方法在不同的情况下有不同的行为。

示例:

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

class Dog extends Animal {
    public void move() {
        System.out.println("Dog is running");
    }
}

class Cat extends Animal {
    public void move() {
        System.out.println("Cat is jumping");
    }
}

public class Test {
    public static void main(String[] args) {
        Animal animal = new Animal();
        Animal dog = new Dog();
        Animal cat = new Cat();

        animal.move();
        dog.move();
        cat.move();
    }
}

在上面的示例中,Animal、Dog和Cat都有一个move()方法,但是它们的行为却是不同的。在main()函数中,使用Animal引用变量分别引用Animal、Dog和Cat类型的对象,并调用它们的move()方法,由于具体对象的不同,move()方法的行为也不同,这就是多态。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈java 面对对象(抽象 继承 接口 多态) - Python技术站

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

相关文章

  • 迅雷9.1.23正式版(9.1.23.556)发布 附下载地址

    迅雷9.1.23正式版(9.1.23.556)发布 附下载地址攻略 迅雷是一款常用的下载工具,最新版本为9.1.23正式版(9.1.23.556)。本攻略将详细介绍如何下载和安装迅雷9.1.23正式版,并提供下载地址。 下载迅雷9.1.23正式版 你可以通过以下步骤下载迅雷9.1.23正式版: 打开你的浏览器,访问迅雷官方网站。 在官方网站的首页或下载页面上…

    other 2023年8月4日
    00
  • elasticsearch未授权访问解决办法

    Elasticsearch未授权访问解决办法 简介 Elasticsearch是一款流行的开源搜索引擎。不过,在配置时,很容易出现未授权访问漏洞。本文将介绍如何解决这个问题。 什么是未授权访问漏洞 未授权访问漏洞是指,在未进行任何密码验证或其他权限控制的情况下,攻击者可以直接访问服务器上的敏感信息或执行操作的安全漏洞。在Elasticsearch中,如果默认…

    其他 2023年3月28日
    00
  • 易语言ocx控件制作条形码功能

    下面我会详细讲解“易语言OCX控件制作条形码功能”的完整攻略。 1. 准备工作 在开始制作条形码功能之前,我们需要做一些准备工作: 下载安装易语言开发环境。 下载安装条形码字体文件,如Code128字体、Code39字体等。 下载安装条形码生成库,并在易语言中添加该库文件。 2. 创建控件 在易语言中,我们可以通过如下代码来创建一个简单的OCX控件: ‘–…

    other 2023年6月26日
    00
  • 升级macOS Big Sur 差点丢了我多年的珍藏文件(夹)!!!

    升级macOS Big Sur 差点丢了我多年的珍藏文件(夹)!!! 最近,我决定升级我的Mac电脑到最新的macOS Big Sur版本。不过,在升级过程中,我几乎把多年珍藏的文件和文件夹全都丢失了! 由于我平时非常注意备份,因此在升级之前,我再次进行了备份。然而,当我在安装过程中重新设置我的Mac时,我意外地发现了一些文件和文件夹。原来,在我的备份磁盘上…

    其他 2023年3月28日
    00
  • Android中通过MediaStore获取音乐文件信息方法

    以下是使用标准的Markdown格式文本,详细讲解Android中通过MediaStore获取音乐文件信息的完整攻略: Android中通过MediaStore获取音乐文件信息方法 步骤1:添加权限和依赖 在AndroidManifest.xml文件中添加读取外部存储权限: <uses-permission android:name=\"an…

    other 2023年10月14日
    00
  • vim块操作

    Vim 块操作攻略 Vim 是一个非常流行的文本编辑器,提供了许多有用的功能,其中包括块操作。在本攻略中,我们将详细介绍如何使用 Vim 的块操作来编辑文本。 步骤1:选择块 在 Vim 中,可以使用 Ctrl + v 快捷键来选择块。以下是一个示例步骤: 在 Vim 中打开要编辑的文件。 按下 Ctrl + v 快捷键。 使用方向键或 hkl 键来选择块。…

    other 2023年5月6日
    00
  • CSS网格布局的示例代码

    CSS网格布局的示例代码攻略 CSS网格布局是一种强大的布局系统,可以帮助我们创建复杂的网页布局。下面是一个详细的攻略,介绍如何使用CSS网格布局,并提供两个示例说明。 步骤1:创建网格容器 首先,我们需要创建一个网格容器,它将包含我们的网格项。我们可以使用display: grid;属性来定义一个元素为网格容器。例如: .container { displ…

    other 2023年7月28日
    00
  • android 中 SQLiteOpenHelper的封装使用详解

    下面我将为你详细讲解如何在 Android 中封装使用 SQLiteOpenHelper。 概述 SQLiteOpenHelper 是 Android 提供的一个 SQLite 数据库帮助类,它可以帮助我们创建数据库,并提供了升级、降级、数据迁移等功能。但是,SQLiteOpenHelper 并没有提供特别友好的 API,因此我们需要对其进行进一步的封装以提…

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