Java 继承方法实例详解

Java 继承方法实例详解

继承是面向对象编程中一个重要的概念,它允许我们在已有类的基础上创建新的类,同时继承的子类也能够拥有基类的属性和方法。在 Java 中,继承是通过关键字 extends 实现的,本文将详细讲解 Java 继承方法的实现方式以及相关注意事项。

继承方法的实现方式

在 Java 中,子类可以继承父类中的所有公有方法和受保护方法(protected)。

子类继承方法的实现方式如下:

public class Parent {
    public void publicMethod() {
        System.out.println("Parent public method");
    }

    protected void protectedMethod() {
        System.out.println("Parent protected method");
    }
}

public class Child extends Parent {
    // 子类空实现
}

在上面的代码中,子类 Child 继承了父类 Parent 中的 publicMethodprotectedMethod 方法。

可以通过在子类中重写方法来实现子类对继承方法的扩展和覆盖:

public class Child extends Parent {
    public void publicMethod() {
        System.out.println("Child public method");
    }

    protected void protectedMethod() {
        System.out.println("Child protected method");
    }
}

在上面的代码中,子类 Child 重写了父类中的 publicMethodprotectedMethod 方法。

继承方法的调用

在子类中调用继承方法的方式有两种:

  1. 通过 super 关键字调用父类中的方法。

Java
public class Child extends Parent {
public void invokeParentMethod() {
super.publicMethod(); // 调用父类中的 publicMethod 方法
super.protectedMethod(); // 调用父类中的 protectedMethod 方法
}
}

  1. 直接调用子类自身的方法。

```Java
public class Child extends Parent {
public void invokePublicMethod() {
publicMethod(); // 调用子类自身的 publicMethod 方法
}

   public void invokeProtectedMethod() {
       protectedMethod(); // 调用子类自身的 protectedMethod 方法
   }

}
```

示例说明

下面给出两个示例,演示了继承方法的使用。

示例一

Parent 类中定义两个方法 publicMethodprotectedMethod,在 Child 类中覆盖了 publicMethod 方法,并添加了自己的方法 childMethod。最后在 Main 类中创建 Child 对象并调用子类和父类的方法。

public class Parent {
    public void publicMethod(){
        System.out.println("Parent public method");
    }

    protected void protectedMethod(){
        System.out.println("Parent protected method");
    }
}

public class Child extends Parent{
    public void publicMethod(){
        System.out.println("Child public method");
    }

    public void childMethod(){
        System.out.println("Child method");
    }
}

public class Main {
    public static void main(String[] args){
        Child child = new Child();
        child.publicMethod(); // 调用子类中的 publicMethod 方法
        child.protectedMethod(); // 调用父类中的 protectedMethod 方法
        child.childMethod(); // 调用自身的 childMethod 方法
    }
}

输出结果:

Child public method
Parent protected method
Child method

示例二

Parent 类中定义两个方法 publicMethodprotectedMethod,在 Child 类中覆盖了 protectedMethod 方法,并添加了一个新的方法 childMethod。最后在 Main 类中分别使用 superthis 调用子类和父类的方法。

public class Parent {
    public void publicMethod(){
        System.out.println("Parent public method");
    }

    protected void protectedMethod(){
        System.out.println("Parent protected method");
    }
}

public class Child extends Parent {
    public void protectedMethod() {
        System.out.println("Child protected method");
    }

    public void childMethod() {
        System.out.println("Child method");
    }
}

public class Main {
    public static void main(String[] args) {
        Child child = new Child();

        child.protectedMethod(); // 调用子类中的 protectedMethod 方法
        child.childMethod(); // 调用子类中的 childMethod 方法

        super.publicMethod(); // 调用父类中的 publicMethod 方法
        this.protectedMethod(); // 调用子类中的 protectedMethod 方法
    }
}

输出结果:

Child protected method
Child method
Parent public method
Child protected method

结论

继承是 Java 中重要的特性之一,在继承过程中可以有效的减少冗余代码。子类通过继承父类中的方法可以减少代码的重复,并且可以重写方法实现子类对已有方法的扩展。同时也需要注意,子类继承方法的权限并不能高于父类的权限。因此需要在子类中合理的使用 super 和 this 关键字调用父类和子类方法,以实现继承方法的调用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 继承方法实例详解 - Python技术站

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

相关文章

  • C++如何处理内联虚函数

    C++如何处理内联虚函数 在C++中,内联函数是被广泛应用的一种优化技术,它能够使函数在编译的时候被直接插入到调用处,从而避免了函数调用的开销。而虚函数则是面向对象编程的重要特性,使得派生类能够覆盖基类的函数实现。那么问题来了,如果想要将一个虚函数定义为内联函数,该怎么做呢? 首先,我们需要明确一个内联函数的特性:它的定义必须在每个使用它的地方都可见。而虚函…

    其他 2023年3月28日
    00
  • h5拖拽操作

    H5拖拽操作 在前端开发的过程中,拖拽操作是非常常见的一种交互方式。HTML5提供了一些新的API使得在网页上实现拖拽效果变得更加轻松和高效。在本文中,我们将会介绍这些API的使用方法,进一步实现各种拖拽效果。 HTML5拖拽操作流程 在HTML5中,拖拽操作主要通过拖拽事件(drag events)和拖拽数据传输(drag and drop data tr…

    其他 2023年3月29日
    00
  • log的6种等级

    log的6种等级 在软件开发中,log是一个非常重要的概念。它记录了软件在运行过程中产生的各种事件和错误信息,为开发者提供了有价值的调试和分析信息。而在log中会有不同的等级以区分不同类型的信息,这样在查看log时,我们就能很快地找到需要的信息。在本文中,我们将介绍log的6种等级以及它们的含义。 DEBUG DEBUG等级是最低的日志级别。它主要用于开发过…

    其他 2023年3月28日
    00
  • CCS进阶——div的宽度和高度是由什么决定的?

    CSS进阶——div的宽度和高度是由什么决定的? 介绍 CSS是构建网页的重要技术之一,其中的div元素被广泛使用。div元素允许我们将内容划分为不同的块,以达到更好的排版和布局效果。然而,对于初学者来说,div元素的宽度和高度的处理可能会带来一定的困难。那么,div的宽度和高度是由什么决定的呢? 宽度的决定 默认宽度 在未设置样式的情况下,div元素的默认…

    其他 2023年3月28日
    00
  • jquery自定义属性(类型/属性值)

    介绍 jQuery是一款广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画效果和AJAX等操作。在jQuery中,可以为HTML元素添加自定义属性。自定义属性包含两个部分:属性类型和属性值。属性类型和属性值在编程时需要用到,它们有助于进行一些动态操作。 属性类型 在jQuery中,可以使用自定义属性类型为各种HTML元素添加额外的特性…

    other 2023年6月25日
    00
  • 理解Javascript_11_constructor实现原理

    理解Javascript_11_constructor实现原理 什么是constructor 在 JavaScript 中,每一个函数都有一个特殊的属性叫做 constructor。这个属性指向的是函数的构造器。 例如,我们定义一个叫做 Person 的构造器函数: function Person(name) { this.name = name; } 那么…

    other 2023年6月26日
    00
  • React深入分析useEffect源码

    以下是详细讲解“React深入分析useEffect源码”的完整攻略: React深入分析useEffect源码 useEffect 简介 在 React 组件中,我们经常需要进行一些副作用操作,比如访问 DOM 元素、调用一些 API 接口等等,而 useEffect 就是用来处理这些副作用操作的。 useEffect 接收一个函数作为参数,该函数会在每次…

    other 2023年6月27日
    00
  • 【python基础】python开启gpu加速

    【Python基础】Python开启GPU加速 在进行深度学习等计算密集型任务时,GPU加速能够显著提升计算速度。而Python作为一门广泛应用于机器学习、人工智能等领域的编程语言,在开启GPU加速上也具有很好的支持。 GPU加速的优势 相比于传统的CPU,GPU(图形处理器)在处理相同的计算任务时具有明显的优势。GPU在处理图形运算时,能够以比CPU更快的…

    其他 2023年3月29日
    00
合作推广
合作推广
分享本页
返回顶部