最新文�? Go语言的新时代:新领导团队和未来规划 Go项目中使用Git_Submodule,还有这个必要吗 从DevOps到日常脚本:聊聊Go语言的多面性 与Thorsten_Ball的共鸣:Go作为教学语言在技术写作中的优越性 Go语言演进的双保险:GOEXPERIMENT与GODEBUG
原创 : 子类继承父类的属性和方法 历史版本:
上次修改时间:

引用自

原创 : 子类继承父类的属性和方法

子类继承父类的属性和方法

继承允许我们创建一个新的类(子类),它继承另一个类(父类)的属性和方法。这使得代码重用和扩展变得更加容易。

在Java中,子类可以继承父类的构造方法。当子类创建对象时,会自动调用父类的构造方法来初始化从父类继承的成员变量和方法。子类可以通过super关键字来调用父类的构造方法。

以下是一个示例代码:

public class Animal {
    private String name;

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

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

public class Dog extends Animal {
    private int age;

    public Dog(String name, int age) {
        super(name); // 调用父类的构造方法
        this.age = age;
    }

    public void speak() {
        System.out.println("Dog speaking");
    }
}

public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog("Tommy", 3);
        dog.speak(); // 输出:Dog speaking
    }
}

在上面的例子中,Animal类有一个带有一个参数的构造方法,它接受一个name(名字)参数并将其赋值给name成员变量。Dog类继承Animal类,并新增了一个age(年龄)成员变量。Dog类的构造方法使用super关键字调用父类的构造方法来初始化name成员变量。最后,在Main类中创建Dog对象,输出结果为"Dog speaking"。

Python要让子类继承父类的所有方法和属性,包括含参数的__init__方法,可以使用super()函数来实现。

下面是一个示例代码:

class Parent:
    def __init__(self, arg1, arg2):
        self.arg1 = arg1
        self.arg2 = arg2
    
    def method1(self):
        print("Parent method1")
    
    def method2(self):
        print("Parent method2")


class Child(Parent):
    def __init__(self, arg1, arg2, arg3):
        super().__init__(arg1, arg2)  # 调用父类的__init__方法
        self.arg3 = arg3
    
    def method3(self):
        print("Child method3")


# 创建子类对象
child = Child("arg1 value", "arg2 value", "arg3 value")

# 调用继承的父类方法
child.method1()  # 输出:Parent method1
child.method2()  # 输出:Parent method2
child.method3()  # 输出:Child method3

在子类的__init__方法中使用super().__init__()调用父类的__init__方法,可以将父类的初始化代码复用。

在C++例子中,Cat类继承自Animal类,因此Cat对象可以调用eat方法(从Animal继承而来),同时也可以调用Speak方法(Cat类特有的)。

class Animal {  
public:  
    void eat() {  
        cout <;<; "The animal eats." <;<; endl;  
    }  
};  
  
class Cat : public Animal { // Dog继承自Animal  
public:  
    void Speak() {  
        cout <;<; "喵!" <;<; endl;  
    }  
};  
  
int main() {  
    Cat myCat;  
    myCat.eat(); // 继承自Animal的方法  
    myCat.Speak(); // Cat特有的方法  
    return 0;  
}
1 私有继承和公有继承

C++中类继承的两种主要方式,它们之间存在几个关键的区别:

  • 成员访问权限:
  • 用途和含义:
  • 多态行为:
  • 设计原则:
  • 0条评�?
    全部评论

    关于博主

    an actually real engineer

    通信工程专业毕业,7年开发经验

    技术栈:

    精通c/c++

    精通golang

    熟悉常见的脚本,js,lua,python,php

    熟悉电路基础,嵌入式,单片机

    耕耘领域:

    服务端开发

    嵌入式开发

    git

    >

    gin接口代码CURD生成工具

    sql ddl to struct and markdown,将sql表自动化生成代码内对应的结构体和markdown表格格式,节省宝贵的时间。

    输入ddl:
    输出代码:

    qt .ui文件转css文件

    duilib xml 自动生成绑定控件代码

    协议调试器

    基于lua虚拟机的的协议调试器软件 支持的协议有:

    串口

    tcp客户端/服务端

    udp 组播/udp节点

    tcp websocket 客户端/服务端

    软件界面

    使用例子: 通过脚本来获得接收到的数据并写入文件和展示在界面上

    下载地址和源码

    duilib版本源码 qt qml版本源码 二进制包

    webrtc easy demo

    webrtc c++ native 库 demo 实现功能:

    基于QT

    webrtc摄像头/桌面捕获功能

    opengl渲染/多播放窗格管理

    janus meeting room

    下载地址和源码

    源码 二进制包

    wifi,蓝牙 - 无线开关

    实现功能:

    通过wifi/蓝牙实现远程开关电器或者其他电子设备

    电路原理图:

    实物图:

    深度学习验证工具

    vtk+pcl 点云编辑工具

    实现功能:

    1. 点云文件加载显示(.pcd obj stl)

    2. 点云重建

    3. 点云三角化

    4. 点云缩放

    下载地址:

    源码 二进制包

    虚拟示波器

    硬件实物图:

    实现原理

    基本性能

    采集频率: 取决于外部adc模块和ebaz4205矿板的以太网接口速率,最高可以达到100M/8 约为12.5MPS

    上位机实现功能: 采集,显示波形,存储wave文件。

    参数可运行时配置

    上位机:

    显示缓冲区大小可调

    刷新率可调节

    触发显示刷新可调节

    进程守护工具

    基本功能:

    1. 守护进程,被守护程序崩溃后自动重启。

    2. 进程输出获取,显示在编辑框中。

    二进制包

    openblt 烧录工具

    基本功能:

    1. 加载openblt 文件,下载到具有openblt bootloader 运行的单片机中。

    二进制包

    opencv 功能验证工具(开源项目二次开发)

    基本功能:

    1. 插件化图像处理流程,支持自定义图像处理流程。 2. 完善的日志和权限管理

    二进制包

    又一个modbus调试工具

    最近混迹物联网企业,发现目前缺少一个简易可用的modbus调试工具,本软件旨在为开发者提供一个简单modbus测试工具。
    主打一个代码简单易修改。
    特点:

    1. 基于QT5

    2. 基于libmodbus

    3. 三方库完全跨平台,linux/windows。

    二进制包

    屏幕录制工具

    1. 基于QT5

    2. 基于ffmpeg

    3. 支持自定义录屏

    源代码

    开源plutosdr 板卡

    1. 完全开源

    2. 提高固件定制服务

    3. 硬件售价450 手焊产量有线

    测试数据

    内部DDS回环测试

    接收测试

    外部发送500MHZ FM波形

    硬件原理图

    matlab测试

    2TRX版本

    大部分plutosdr应用场景都是讲plutosdr板卡作为射频收发器来使用。
    实际上plutosdr板卡本身运行linux 操作系统。是具有一定脱机运算的能力。 对于一些微型频谱检测,简单射频信号收发等应用完全可以将应用层直接实现在板卡上
    相较于通过网卡或者USB口传输具有更稳定,带宽更高等优点。
    本开源板卡由于了SD卡启动,较原版pluto支持了自定义启动应用的功能。
    提供了应用层开发SDK(编译器,buildroot文件系统)。
    通过usb连接电脑,经过RNDIS驱动可以近似为通过网卡连接
    (支持固件的开发定制)。

    二次开发例子

    ``` all:
    arm-linux-gnueabihf-gcc -mfloat-abi=hard --sysroot=/root/v0.32_2trx/buildroot/output/staging -std=gnu99 -g -o pluto_stream ad9361-iiostream.c -lpthread -liio -lm -Wall -Wextra -lrt
    clean:
    rm pluto_stream

    bsdiff算法补丁生成器

    1. 官方bsdiff算法例子自带bzip压缩方式

    2. 本例子没有压缩,直接生成补丁文件

    3. 图形化界面基于DUILIB

    二进制文件

    版面分析即分析出图片内的具体文件元素,如文档标题,文档内容,文档页码等,本工具基于cnstd模型

    Base64 Image

    . 闽ICP备19002644号