JAVA与C#经典程序比较-- 抽象类

C#的继承、接口、抽象类理解 OOP三特性:继承、封装、多态继承:C#属于单继承,即派生类最多只能有一个直接基类,但可以传递继承,即A类派生B类,B类派生C类,派生类会保留所有基类以及传递基类的字段、属性、方法等所有内容。如果要在派生类中隐藏基类内容,可以通过new关键字实现,或是通过base来调用基类的内容传递继承示例:using System; using System.Collections.Generic; using... 阅读详情

JAVA与C#都是面向对象的语言,它们都有各自的抽象类,都能实现多态性。

 

 

一、在JAVA中实现学生和老师打招呼的代码

import java.util.ArrayList;//导入ArrayList集合类

/**

     抽象父类Person

*/

abstract class Person

{

     String name;//姓名

     int age;//年龄

     Person(String name,int age)

     {

         this.name=name;

         this.age=age;

     }

     //抽象方法sayHi()由子类来实现

     abstract void sayHi();

}

/**

     学生类继承了Person也就继承了父类的属性

     父类中含有抽象方法因此在子类中要重写父类的抽象方法

*/

class Student extends Person

{   

     String hobby;//附加属性,爱好

     Student(String name,int age,String hobby)

     {

         super(name,age);

         this.hobby=hobby;

     }

     /**

         重写父类中的sayHi()方法

     */

     void sayHi()

     {

         System.out.println("大家好,我是"+name+"同学,今年"+age+"岁了,我喜欢"+hobby);

     }

}

/**

     教师类继承Person

     重写抽象父类Person中的抽象方法sayHi()

*/

class Teacher extends Person

{

     int yearOfService;//附加属性,工作年限

     Teacher(String name,int age,int yearOfService)

     {

         super(name,age);

         this.yearOfService=yearOfService;

     }

     /**

         重写父类中的sayHi()方法

     */

     void sayHi()

     {

         System.out.println("大家好,我是"+name+"老师,今年"+age+"岁了,我已经工作了"+yearOfService);

     }

}

/**

     测试类

*/

class PersonTest

{

     public static void main(String[] args)

     {

         //生成泛型集合对象

         ArrayList<Person> persons = new ArrayList<Person>();

         //生成学生对象

         Student student = new Student("张三",22,"唱歌");

         //生成教师对象

         Teacher teacher = new Teacher("李四",44,10);

         //将学生和教师添加到泛型集合对象中,自动将student和teacher上溯造型为Person对象

         persons.add(student);

         persons.add(teacher);

         //遍历集合

         for(int i=0;i<persons.size();i++)

         {

              persons.get(i).sayHi();

         }

     }

}

 二、在C#中实现学生和老师打招呼的代码

using System;

using System.Collections.Generic;

using System.Text;

 

namespace Person

{

    /// <summary>

    /// 抽象父类Person

    /// </summary>

    abstract class Person

    {

        public Person(string name,int age)

        {

            this.Name = name;

            this.Age = age;

        }

        //姓名

        private string name;

 

        public string Name

        {

            get { return name; }

            set { name = value; }

        }

        //年龄

        private int age;

 

        public int Age

        {

            get { return age; }

            set { age = value; }

        }

        /// <summary>

        /// 抽象方法SayHi()将在子类中被重写

        /// </summary>

        public abstract void SayHi();

    }

    /// <summary>

    /// 子类Student继承抽象父类Person,重写抽象方法SayHi()

    /// </summary>

    class Student : Person

    {

        public Student(string name, int age, string hobby)

            :base(name,age)

        {

            this.Hobby = hobby;

        }

        //附加属性,爱好

        private string hobby;

 

        public string Hobby

        {

            get { return hobby; }

            set { hobby = value; }

        }

        /// <summary>

        /// 重写父类中的SayHi()方法

        /// </summary>

        public override void SayHi()

        {

            string message = string.Format("大家好,我是{0}同学,今年{1}岁了,我喜欢{2}。",this.Name,this.Age,this.Hobby);

            Console.WriteLine(message);

        }

    }

    /// <summary>

    /// 子类Teacher继承抽象父类Person,并实现抽象方法SayHi

    /// </summary>

    class Teacher : Person

    {

        public Teacher(string name,int age,int yearOfService)

            :base(name,age)

        {

            this.YearOfService = yearOfService;

        }

 

        //工作年限

        private int yearOfService;

 

        public int YearOfService

        {

            get { return yearOfService; }

            set { yearOfService = value; }

        }

        public override void SayHi()

        {

            string message = string.Format("大家好,我是{0}老师,今年{1}岁了,我已经工作{2}年了。",this.Name,this.Age,this.YearOfService);

            Console.WriteLine(message);

        }

    }

    class Program

    {

        static void Main(string[] args)

        {

            //实例化泛型集合对象

            List<Person> persons = new List<Person>();

            //生成学生对象

            Student student = new Student("张三", 22, "唱歌");

            //生成教师对象

            Teacher teacher = new Teacher("李四", 44, 10);

            //将学生和教师添加到泛型集合对象中,自动将student和teacher上溯造型为Person对象

            persons.Add(student);

            persons.Add(teacher);

            //遍历集合

            for (int i = 0; i < persons.Count; i++)

            {

                persons[i].SayHi();

            }

            Console.ReadLine();

        }

    }

}

 

       由上面用两种语言编写的程序可以看出,它们都很相似,都实现了同一个功能就是学生和老师打招呼介绍自己的行为。它们都用到了抽象类,在子类中都重写了抽象父类中的抽象方法,都用到了泛型集合,也都表现出了面向对象的特性之一-多态性。

 

       只不过这两种语言在语法上有许多不同之处。

      

1、  继承

在JAVA中继承使用关键字extends,而在C#中继承使用符号:。

2、  调用父类的构造方法(构造函数)

在JAVA中在子类的构造方法中使用super(参数列表)来调用父类的构造方法,而在C#中在子类后面加上:base(参数列表)。

3、  重写父类的抽象方法

              在JAVA中,只需要在子类中重写父类的抽象方法即可,而在C#中需要在这个重写的抽象方法前加上关键字override以表明该方法重写了父类的方法。

4、  属性

       在JAVA中只有属性,而在C#中除了有属性,还有字段,并且字段设为私有变量,通过属性给这个私有变量赋值,这样做的好处就是加强了对数据的校验,保证了数据的安全性,其实在JAVA中可以通过定义set方法和get方法来实现,只不过在C#中,微软增加了属性,并在属性中又增加了set访问器和get访问器。

5、  命名规范

       在JAVA中,变量名和方法名全部采用Camel命名法,类名和构造方法名采用Pascal命名法;而在C#中私有成员采用Camel命名法,而公有成员采用Pascal命名法。

6、  对属性的操作

在JAVA中一般将属性设为私有成员,不允许用户直接对属性操作,而在C#中因为

在属性中增加了访问器,因此可以对属性直接进行操作,这样做的好处之一就是提高了性能。

7、  对集合的访问

在JAVA中对集合中对象的访问一般通过get方法来获得集合中的元素,而在C#中

可以直接通过索引器来直接访问集合中的元素,这样做的好处主要是为了方便用户访问提高程序的性能。

      

       还有其他很多不同之处这里就不再一一阐述。

 

 

 

      这两种语言的相同之处:

 

 

 

      

1.         都实现了面向对象的三大特性-继承、封装、多态。

2.         都使用到了最流行的技术:泛型集合。

      

       JAVA的优势:

 

1.         可以实现跨平台操作,在手机程序开发方面占有很大的优势。

2.         SUN公司提供的类库都是开源代码,这样就方便了开发人员开发程序。

3.         可以发挥程序员的创造性,为程序员带来成就感。

      

       .NET的优势:

 

1.         可跨语言语言操作。(据说也可以实现跨平台,但我没试过,它应该还是在windows上的性能表现最佳)

2.         增加了很多特性,提高了性能,例如:属性、索引器等。

3.         微软提供的开发工具非常棒,操作简单容易上手。

 

       .NET是在JAVA之后发展起来的,.NET作为小弟吸收借鉴了大哥的长处摒弃了其短处,并以高效便捷的开发工具和.NET框架吸引了一大批程序员,但让人感到不适的地方在于它将很多东西都封装起来,根本看不到其内部机制,有时候想改还不知道该如何改。JAVA作为大哥,也有许多要不断完善的地方。不过就做为教学而言,我想与C#.NET比较,JAVA更适合作为教学用语言,这样更容易帮助学生了解其内部机制。

Java、C#与C++在继承、覆盖、多态及抽象类中的特性对比分析 在现代软件工程中,面向对象编程(OOP)已成为主流的程序设计范式。其四大基本特征——封装、继承、多态与抽象,构成了构建可维护、可扩展系统的基础。要素语法符号是否必需作用继承关键字extends是声明类继承关系访问控制publicprotected/ 默认 /private否(默认包内可见)控制成员可访问范围方法重写@Override否(推荐使用)提供编译时校验,增强代码健壮性构造器链调用super(...) 阅读详情

相关推荐

由Person类派生出学生类Student和教师类Teacher

由Person类派生出学生类Student和教师类Teacher,并为他们添加必要的数据,为这两个派生类编写必要的构造函数和析构函数。然后编写一个主函数对以上功能进行测试。 包括了很多的程序可供您参考!

如何用Java实现类似c/c++指针效果

如何用Java实现类似c/c++指针效果        JAVA作为一门类C语言,已经得到大家的青睐,许多人问过我Java是否也可以用指针,当然这主要是因为他们觉得有了指针,可以省去对象调用的麻烦,但没有想到的是Java语言为何没有设置指针,举个例子: 一个无法实现c/c++指针效果的例子 public class Foo { public static void main(String[

liaokangli_first的专栏 1万+

【软考高项】五十一、常见必会的几种进度网络图(单代号、双代号、七格图、横道图)

软考高项计算题进度网络图画图介绍

有莘不破的博客 3万+

int * (*ptr)()怎么理解(指向函数的指针)

先来分析一下int * (*ptr)() 1.由于小括号的运算级比较高,结合方法又是自左向右,所以先运算(*ptr),表明定义了一个指针ptr 2.接下来再运算最右边的小括号(),表明是一个函数 3.接下平再运算* (*ptr)(),表明函数的返回值是一个指针 4.那么int * (*ptr)()表明定义了一个指针变量ptr,它指向一个没有参数,并且返回值是一个整型指针的函数。这就叫做指向函数的

as14569852的博客 1万+

300Kg载重履带式无人车底盘定制开发技术详解

通过精准的需求分析、科学的方案设计、严格的研发与测试以及完善的交付与培训流程,可以打造出符合客户需求的优质产品。300Kg载重履带式无人车底盘的定制开发,旨在打造一款承载能力强、行驶稳定、适应复杂地形的无人运输平台。根据应用场景选择合适的动力源,并进行性能优化,确保无人车在载重情况下仍能保持稳定的行驶速度和动力输出。根据需求分析结果,设计无人车底盘的总体方案,包括动力系统选择、结构设计、负载管理策略等。进行详细的研发工作,包括零部件的选型与采购、样机的制作与调试等。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 960

ASME B31.3-2024工艺管道标准介绍

ASME B31.3-2024《过程管道》是ASME发布的最新版工业管道标准,适用于石油、化工、制药等行业的管道系统设计、建造和维护。该版标准进行了多项重要更新,包括软管管理、应力指数调整、新增管件类型、焊接检查和泄漏测试等条款修订,并新增了书面报告要求。标准共594页,为全球过程工业提供管道安全规范,对保障管道系统完整性、可靠性具有重要意义,被多国强制采用或推荐使用。

TXNMG的博客 4719

抽象类和接口 (C#/Java)

抽象类和接口 (C#/Java) C#: 一、抽象类: 抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必...

weixin_30920091的博客 134

PWN-shellcode

构造一段shellcode的作用就是为了在缓冲区溢出时将shellcode的地址覆盖掉正常的返回地址。 题目: 1Ch=16+12=28,+esp=32:偏移量是32 能溢出:100-0x1c-4=68字节 C伪代码: 理论基础 函数返回步骤 : 保存返回值:函数返回值保存在EAX寄存器 弹出当前栈帧,恢复上一个栈帧 a) ESP + 当前栈帧大小:堆栈平衡基础上,降低栈顶,回收当前栈帧空间...

MuMuLee_的博客 2086

intptr java_[转载]C#中int和IntPtr相互转换

方法一、int转IntPtrint i = 12;IntPtr p = new IntPtr(i);IntPtr转intint myi = (int)p;MessageBox.Show(myi.ToString());方法二、int转IntPtrint i = 12;IntPtr p =(IntPtr)iIntPtr转intint myi = (int)p;MessageBox.Show(myi....

weixin_42514750的博客 866

Wireshark实战解析IEC 61850 GOOSE报文:智能变电站通信调试指南

网络协议分析是理解现代工业通信系统的基础,其核心原理在于对数据包的捕获、解码与解析。在电力自动化领域,IEC 61850标准定义了智能变电站内设备间高效、可靠的通信框架,其中GOOSE(通用面向对象变电站事件)协议因其基于以太网多播和快速重传机制,成为保护跳闸、联锁等关键信号传输的基石,其技术价值在于实现了微秒级延迟的高可靠性通信。掌握GOOSE报文的分析能力,对于现场调试、故障定位及系统验证至关重要。本文聚焦于使用Wireshark这一网络分析工具,深入解析GOOSE报文结构,涵盖从以太网帧头、协议标识到

weixin_34401479的博客 377

多 Agent 之间如何通信和协调?OpenClaw 的 Gateway 在其中扮演什么角色?

多 Agent 之间如何通信和协调?OpenClaw 的 Gateway 在其中扮演什么角色?

我哎GIS博客 1666

C#和java区别

相同点: 都是面向对象编程的语言,都能够实现面向对象的(封装,继承,多态)思想 不同点: c#中的命名空间是namespace类似于Java中的package(包),在Java中导入包用import而c#中用using。 c#和Java都是从main函数入口的,但是c#中的main函数的首字母必须大写 数据类型:Java跟c#基本都差不多,但是Java的String类型的首字母必须大写,而c#中可以小写也可以大写,还有布尔型,Java中是boolean,c#中是bool。 变量的命

Abrahaml的博客 3105

在 SAP GUI 里开发与调用 Adobe PDF 表单:SFP 建模 + Driver Program 调用的全流程实战

本文介绍了在SAP系统中使用Adobe PDF表单的完整流程。重点阐述了SAP Interactive Forms相比传统表单工具的优势,特别是在处理复杂排版、条码和交互式字段时的适用性。文章详细说明了开发流程:从安装设计工具Adobe LiveCycle Designer开始,到在SFP事务码中创建Interface和Form的数据模型,再到编写驱动程序的ABAP代码实现PDF输出。特别强调了Interface作为数据契约的重要性,以及如何通过分层设计实现前后端分离开发。最后提供了标准调用链的示例代码,展

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 281

在JAVA和C#中的抽象类和接口的区别

在 C# 和 Java 中,​抽象类和接口的核心概念相似,但具体语法和功能存在一些关键区别。

Rocn666的博客 964

【深度学习】什么是自回归模型?

自回归模型是一种重要的时间序列模型,通过利用过去的值来预测当前或未来的值。它在统计学、经济学、自然语言处理等领域有广泛的应用。自回归模型的简单性和可解释性使其成为许多应用的首选,但在更复杂的情况下,可能需要结合其他模型如移动平均模型(MA模型)或混合模型(如ARIMA)来更好地捕捉时间序列中的模式。扩散模型(Diffusion Model)和自回归模型(Autoregressive Model)是两种不同的生成模型,各自有独特的特点和应用场景。

q742971636的博客 1674

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

100道C#高频经典面试题带解析答案——全面C#知识点总结

C#(发音为C Sharp)是一种由微软开发的现代、通用、面向对象的编程语言,作为.NET框架的一部分,主要用于开发Windows应用、Web应用、移动应用等。面向对象:支持类、对象、继承、多态、封装等面向对象的特性。类型安全:强类型语言,提供类型检查,减少运行时错误。丰富的类库:提供大量的标准库,简化开发。跨平台:通过.NET Core和.NET 5/6等实现跨平台开发。异步编程:内置支持异步编程模型(async/await),提高应用性能。垃圾回收:自动内存管理,减少内存泄漏和错误。

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 8129

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

java接口比较,Java接口与抽象类的比较

Java接口与抽象类的比较Java接口与抽象类的比较1、 最大的区别:java抽象类可以提供某些方法的部分实现,而java接口不可以。如果向一个抽象类里加入一个新的具体方法,那么他所有的子类都一下子得到了这个新方法,而java接口做不到这一点。如果向一个java接口里面加入一个新方法,所有实现这个接口的类就无法成功通过编译了,因为必须让那个每一个类都再实现这个方法才行,这显然是java接口的缺点...

weixin_42188533的博客 229

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

C# 接口和抽象类的区别

一、抽象类 抽象类是仅供派生的类,无法实例化抽象类,只能实例化它派生的类。 定义抽象类和抽象成员时,要为其添加abstract修饰符。 不可实例化只是抽象类的一个次要的特征,其主要特征是它包含抽象成员。 抽象成员不能声明为私有,否则,派生类无法找到它们。 二、接口 1.和抽象类不同,接口不包含任何实现,而且,接口能把提供的服务和实现细节完全隔离开。 2.关键特点:既不包含实现,也不包含数据。...

mozhi 1976

C#中抽象类的使用和示例

C#中 抽象类 的使用和示例 今天学校在上Java课程时讲到使用abstract(抽象的)修饰符来修饰类使之成为抽象类,于是想到最近在学习c#,虽然说没讲到这块,但是既然Java老师给我提了一个醒,我不在C#这块拓展一下就感觉好像很对不起我们的老师,所以就在网上查阅了相关的资料文献,将C#中抽象类总结了下,下面我们就一起开始探讨吧! abstract 修饰符 1、了解 abstract 是什么意思? abstract 在英语中译为抽象的 2、用这个修饰符来干什么? ​ abstract 修饰符 修饰类名

abraham_ly的博客 1535

【c#入门杂选】继承和抽象类

交流学习!

秩沅 1190

C#和Java的比较

原文 C#(C-Sharp)是Microsoft的新编程语言,被誉为“C/C++家族中第一种面向组件的语言”。然而,不管它自己宣称的是什么,许多人认为C#更像是Java的一种克隆,或者是Microsoft用来替代Java的产品。事实是否是这样的呢? 本文的比较结果表明,C#不止是Java的同胞那么简单。如果你是一个Java开发者,想要学习C#或者了解更多有关C#的知识,那么本文就是你必须把最初

ShanX_s的博客 2731

JAVA与C#的比较[转载]

Java和C#都是编程的语言,它们是两个不同方向的两种语言 相同点: 他们都是面向对象的语言,也就是说,它们都能实现面向对象的思想(封装,继承,多态) 区别: 1.c#中的命名空间是namespace类似于Java中的package(包),在Java中导入包用import而c#中用using。 2.c#和Java都是从main函数入口的,但是c#中的main函数的首字母必须大写,它有四种写...

lxy19880708的专栏 273

C#之抽象类、虚方法、重写、接口、密封类

前言    学了这么长时间的C#,我想说对于这个东东还是不是特别了解它,以至于让我频频郁闷。每次敲代码的时候都没有一种随心所欲的感觉。所以不得不在网上搜集一些资料,look 了 look~ 内容    接触了C#很长时间了,现在总结一下C#类关键字(abstract、virtual、override、sealed(这是新接触的)、new)的使用和它的体现。 1、C#中用abstract

好学若饥,谦卑若愚 2809

Java 和 C#的比较

1。访问控制方面:C#有public、internal、protected、private,比java多了个internal,其实它跟java的包访问差不多,internal表示同一个编译集合(如exe、dll)下的类可以互访。对于protected,java和C#有区别。在java中,protected和包访问级别差不多,即不是私有的。而在C#中,protected和privat...

weixin_34268843的博客 679

C#与java中对抽象类、接口的继承和重写区别

C#: 一、继承 什么是继承:继承是允许重用现有类去创建新类的过程。分类的原则是一个类派生出来的子类具有这个类的所有非私有的属性。 1、继承C#中的类:C#不支持多重继承,C#类始终继承自一个基类(如果未在声明中指定一个基类,则继承自System.Object)。 派生类继承基类的语法如下: using System; public class Person { //这是基

nma_123456的专栏 2558

java中的抽象类与接口的区别_Java中抽象类与接口的区别

抽象类与接口紧密相关。然而接口又比抽象类更抽象,它们之间明显存在区别。那到底存在哪些方面的区别呢?下面学习啦小编给大家讲讲Java中抽象类与接口的区别。一、抽象类在面向对象方法中,抽象类主要用来进行类型隐藏。构造出一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式。这个抽象描述就是抽象类,而这一组任意个可能的具体实现则表现为所有可能的派生类。模块可以操作一个抽象体。由于模块...

weixin_29013129的博客 390
上一篇: 1℃ love (1℃的爱情)
下一篇: 数据库连接发展史(转载)
-1悟空1-
博客等级 码龄18年 18粉丝 10原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值