JAVA 继承基本类、抽象类、接口介绍

yizhihongxing

JAVA 继承基本类、抽象类、接口介绍

在JAVA编程中,继承是一种重要的代码复用机制。通过继承,子类可以继承父类的属性和方法。JAVA中主要有三种继承方式:继承基本类、继承抽象类、实现接口。本文将为您详细讲解继承这三种方式的特点、应用场景和示例。

继承基本类

继承基本类也称作“普通继承”。基本类是指没有被定义为抽象的类。通过普通继承,子类可以继承父类的非私有属性和方法。继承后,子类可以扩展父类的功能,也可以重写父类的方法。

示例:

public class Animal {
    private String name;

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

    public String getName() {
        return name;
    }

    public String getType() {
        return "普通动物";
    }

    public void run() {
        System.out.println(getName() + "在奔跑");
    }
}

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

    @Override
    public String getType() {
        return "犬科动物";
    }

    public void bark() {
        System.out.println(getName() + "在吠叫");
    }
}

public class Test {
    public static void main(String[] args) {
        Dog dog = new Dog("旺财");
        System.out.println(dog.getName() + "是" + dog.getType());
        dog.run();
        dog.bark();
    }
}

上述代码中,Animal是基本类,Dog是子类。Dog继承Animal,可以获取Animal的name和run()方法,并在此基础上扩展了一个bark()方法,并重写了getType()方法。

继承抽象类

继承抽象类是JAVA中一种常用的继承方式。抽象类是不能被实例化的,只能被继承。抽象类中包含抽象方法(没有实现的方法)和非抽象方法(有实现的方法)。子类必须实现所有抽象方法,否则子类也必须是抽象类。通过抽象类,可以将一些通用的操作和逻辑放在抽象类中,子类只需要关注与自身相关的方法和属性。

示例:

public abstract class Animal {
    private String name;

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

    public String getName() {
        return name;
    }

    public void run() {
        System.out.println(getName() + "在奔跑");
    }

    public abstract String getType();
}

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

    @Override
    public String getType() {
        return "犬科动物";
    }

    public void bark() {
        System.out.println(getName() + "在吠叫");
    }
}

public class Test {
    public static void main(String[] args) {
        Dog dog = new Dog("旺财");
        System.out.println(dog.getName() + "是" + dog.getType());
        dog.run();
        dog.bark();
    }
}

上述代码中,Animal是抽象类。将getType()方法定义为抽象方法,子类必须实现。Dog继承Animal,必须实现getType()方法。在此基础上,Dog扩展了一个bark()方法。

实现接口

实现接口是JAVA中一种常用的代码复用方式。接口是抽象方法的集合,其所有方法都是抽象的。实现接口可以使子类具有某些特定功能。因为JAVA中不支持多继承,所以实现接口成为代码复用的重要方式。

示例:

public interface Animal {
    public String getName();

    public String getType();

    public void run();
}

public class Dog implements Animal {
    private String name;

    Dog(String name) {
        this.name = name;
    }

    @Override
    public String getName() {
        return name;
    }

    @Override
    public String getType() {
        return "犬科动物";
    }

    @Override
    public void run() {
        System.out.println(getName() + "在奔跑");
    }

    public void bark() {
        System.out.println(getName() + "在吠叫");
    }
}

public class Test {
    public static void main(String[] args) {
        Dog dog = new Dog("旺财");
        System.out.println(dog.getName() + "是" + dog.getType());
        dog.run();
        dog.bark();
    }
}

上述代码中,Animal是接口,定义了getName()、getType()、run()三个抽象方法。Dog实现Animal接口,并实现了接口中的所有方法,在此基础上扩展了一个bark()方法。

总的来说,继承是JAVA中重要的代码复用机制,能够减少代码冗余,提高代码的可读性和可维护性。不同的继承方式可以适应不同的场景,通过灵活运用,可以编写出高效、易维护的JAVA程序。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA 继承基本类、抽象类、接口介绍 - Python技术站

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

相关文章

  • 10种excel多条件查找函数的使用方法汇总

    10种Excel多条件查找函数的使用方法汇总 Excel提供了多种函数来进行多条件查找,这些函数可以帮助用户在大量数据中快速定位所需信息。以下是10种常用的Excel多条件查找函数及其使用方法的详细攻略。 1. VLOOKUP函数 VLOOKUP函数用于在垂直数据表中查找某个值,并返回该值所在行的指定列的值。它的基本语法如下: VLOOKUP(lookup_…

    other 2023年7月28日
    00
  • C++空间命名的使用

    C++空间命名的使用攻略 在C++中,命名空间(namespace)是一种用于组织代码的机制,可以将相关的函数、类、变量等放置在同一个命名空间下,以避免命名冲突和提高代码的可读性。本攻略将详细介绍C++空间命名的使用方法,并提供两个示例说明。 1. 命名空间的定义和使用 命名空间的定义使用namespace关键字,后跟命名空间的名称。命名空间可以嵌套定义,形…

    other 2023年7月28日
    00
  • MySql索引和事务定义到使用全面涵盖

    下面就讲解一下“MySql索引和事务”的完整攻略。 一、MySql索引 1. 索引的概念 索引是一种数据结构,用于提高数据库的查询效率,它通过将某个列或多个列的值进行排列组合,生成一个与之对应的数据结构,使得查询时可以快速定位数据行,提高检索的效率和准确性。 2. 索引类型 MySql支持多种索引类型,常见的有BTree索引、Hash索引、Full-text…

    other 2023年6月27日
    00
  • Spring导入properties配置文件代码示例

    请看以下 Spring 导入 properties 配置文件的完整攻略: 1. 创建 properties 配置文件 首先,我们需要在项目中创建一个 properties 文件,比如 config.properties,用于存储配置信息。在文件中添加需要配置的属性,如下所示: jdbc.driver=com.mysql.jdbc.Driver jdbc.ur…

    other 2023年6月25日
    00
  • 几种查看ubuntu信息的方法

    以下是关于“几种查看Ubuntu信息的方法”的完整攻略,包括基本概念、步骤和两个示例说明。 基本概念 Ubuntu是一种基于Debian的Linux操作系统,它是开源的、免费的,可以在个人电脑、服务器和云平台上运行。在使用Ubuntu时,我们可能需要查看一些系统信息,例如操作系统版本、内核版本、硬件信息等。本文将介绍几种查看Ubuntu信息的方法。 步骤 以…

    other 2023年5月7日
    00
  • Python学习第三篇——访问列表部分元素

    Python学习第三篇——访问列表部分元素 在Python中,列表是一种非常重要的数据类型。它可以存储多个元素,并且支持灵活的操作方式。在本文中,我们将介绍如何访问列表的部分元素,这是日常编程中非常常见的一种操作。 切片操作 Python的列表可以通过索引来访问单个元素,但有时候我们需要访问多个连续的元素。这时可以使用切片(slice)操作。切片操作使用冒号…

    其他 2023年3月28日
    00
  • windows读取ext4硬盘

    Windows 读取 ext4 硬盘 如果你在 Windows 操作系统上使用 ext4 文件系统格式的硬盘,你可能会遇到无法打开硬盘和文件的问题。这是因为 Windows 并不支持 ext4 文件系统,而只能支持自己的 NTFS 和 FAT32 格式。 然而,如果你需要从 Windows 访问 ext4 硬盘中的数据,有一些方法可以帮助你解决这个问题。 方…

    其他 2023年3月28日
    00
  • 简单说明CGI和动态请求是什么

    下面是关于图像超分辨率技术研究的完整攻略,包括介绍、方法和两个示例说明。 介绍 图像超分辨率技术是一种通过算法将低分辨率图像转换为高分辨率图像的技术。它可以提高图像的清晰度和细节,广泛应用于数字图像处理、计算机视觉、医学图像等领域。 方法 图像超分辨率技术主要有两种方法:插值法和重建法。 插值法: 插值法是一种基于像素的方法,通过对低分辨率图像中的像素进行插…

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