java中多态的理解

利用java继承机制创建Figure、CloseFigure、Line、Polygon、Triangle、Rectangle类、并通过throws进行违规数据的异常处理。 阅读详情

发生多态要有三个前提条件

继承、重写、父类引用指向子类对象

public class Figure {

//绘制几何图形方法

public void onDraw()

{

     System.out.println("绘制Figure...");

}

}

//几何图形三角形

public class Triangle extends Figure { //这里体现了多态第一点:继承
 
    // 绘制几何图形方法
    @Override
    public void onDraw() {//这里体现了多态第二点:重写
        System.out.println("绘制三角形...");
    }
 
}
//几何图形椭圆形
public class Ellipse extends Figure {
 
    //绘制几何图形方法
    @Override
    public void onDraw() {
        System.out.println("绘制椭圆形...");
    }
    
}
 

public class HelloWorld {
 
    public static void main(String[] args) {
        
        // f1变量是父类类型,指向父类实例
        Figure f1 = new Figure();
        f1.onDraw();
 
        // f2变量是父类类型,指向子类实例,发生多态
        Figure f2 = new Triangle();
        f2.onDraw();
 
        // f3变量是父类类型,指向子类实例,发生多态
        Figure f3 = new Ellipse();
        f3.onDraw();
 
        // f4变量是子类类型,指向子类实例
        Triangle f4 = new Triangle();
        f4.onDraw();
 
    }
}

 

打印结果为:

绘制Figure...

绘制三角形...

绘制椭圆形...

绘制三角形...

 

Zynq 双核AMP 通信 4、配置离线编译(这里不讲),配置linux的内核地址空间(0x4000_0000改为0x2000_0000),以及单核启动。CPU1设置为0x2000_0000~0x3FFF_FFFF(也可以小于0x3FFF_FFFF)如果禁用CPU1的L2 cache,在CPU1的bsp里面添加编译时候所需要的宏。3、配置工程,将vivado产生的.xsa文件复制到amp_com项目目录下。9、使用petalinux-package --boot 打包。一、vivado工程。5、编译u-boot。 阅读详情

相关推荐

基于FPGA的心电信号实时处理与智能诊断系统实现【附源码解析】

本文详细介绍了基于FPGA的心电信号实时处理与智能诊断系统的设计与实现。系统通过高精度采集电路和FPGA数字滤波技术处理微弱心电信号,采用自适应算法准确检测QRS波群,实现心率计算和心律异常诊断。附源码解析展示了FIR滤波器、中值滤波器和诊断逻辑的Verilog实现,为心电监护系统开发提供实用参考。

g8f9d0s1a2的博客 770

java基础教程-继承

 第8章  继 承继承是面向对象编程技术的一块基石,因为它允许创建分等级层次的类。运用继承,你能够创建一个通用类,它定义一系列相关项目的一般特性。该类可以被更具体的类继承,每个具体的类可以增加一些自己特有的东西。在Java术语学中,被继承的类叫超类(superclass),继承超类的类叫子类(subclass)。因此,子类是超类的一个专门用途的版本,它继承了超类定义的所有实例变量和方法,并

liyang999的专栏 1270

2025年12月11日 Coherent收发器下沉到数据中心:调研

技术可行性已基本具备。随着3nm DSP技术的成熟和Coherent-Lite等低功耗方案的推出,Coherent技术与IMDD的功耗差距在800G及以上速率节点快速缩小。特别是在1.6T及更高速率,两种技术的功耗开始趋于收敛。同时,通过系统级优化,如将DSP功能从可插拔模块转移到ASIC芯片,可实现30%以上的功耗降低。在成本方面,硅光技术的进步使得单通道硅光引擎BOM成本降至18美元,较2020年下降62%,逼近InP方案的经济临界点。光学系统机会丰富多样。

weixin_51184047的博客 1167

java 小册子_Bokeh小册子:figure详细解读

Bokeh 系列文章传送门:figure 在 bokeh 绘图中有着重要的作用,今天我们来开始了解 figure 的用法, 希望对大家有所帮助。本次运行环境为:win7jupyter notebookpython 3.6bokeh 0.13.0Bokeh 中绘图的一般步骤加载 bokeh 库,声明在 notebook 或 html 文件中显示或输出绘制的图表绘制图表框架 figure()在 fig...

weixin_27442001的博客 779

统信UOS系统盘扩容保姆级教程:用GParten-分区编辑器5分钟搞定

本文提供统信UOS系统盘扩容的详细图形化教程。针对系统盘空间不足问题,重点介绍如何使用系统自带的GParten-分区编辑器,在5-10分钟内安全、直观地完成扩容操作,无需记忆复杂命令,适合所有用户快速解决存储空间告急的困扰。

e3f4g5的博客 640

黏菌算法(Slime Mould Algorithm,SMA)

这是一篇关于黏菌算法的总结博客,包含算法思想,算法步骤,求函数最值(Python实现),算法改进等,持续更新ing

weixin_46838605的博客 1万+

探索Java中的多态

多态是指同一个方法在不同对象上具有不同的行为。通过多态,程序可以在运行时决定调用哪个方法,从而提高代码的灵活性和可扩展性。多态是Java中一个重要且强大的特性,它允许在运行时根据对象的实际类型调用相应的方法,从而提高代码的灵活性和可扩展性。通过方法重载、方法重写、接口和抽象类,可以实现多态,并在实际开发中广泛应用于代码复用、接口回调和工厂模式等场景。希望本文能帮助您更好地理解和应用Java中的多态。如果您有任何问题或建议,欢迎留言讨论。

梦想家星空的博客 914

BDD测试之Behave使用入门

BDD测试(Behavior-Driven Development Testing)是一种基于“行为驱动开发”(BDD)理念。

想要成为酷盖但是失败的小明 580

Java多态的概念、优点和用法

多态的概念、优点和用法 1. 多态的概念 2.多态存在的三个必要条件 3. 多态的使用--方法的多态 4. 多态的使用--对象的多态 5. 多态的优点 5 拓展--向上转型和向下转型

qq_52972504的博客 3172

高压控制单元与接触器 —— BMS电池的“高压大门”

高压接触器在BMS电池管理系统中扮演着“高压大门”的角色,负责控制电池包与整车高压母线的连接与隔离。接触器的工作原理基于线圈产生的磁力吸合接点,通过主触点接通高压电流路径,辅助触点检测状态,灭弧结构保护接点。预充电路的设计是为了避免直接连接大电容时产生的浪涌电流冲击,通过预充电阻逐步充电,确保系统安全上电。接触器控制策略包括顺序控制、辅助触点检测、温度监控、故障断电和背靠背MOS辅助控制,以确保系统的高效和安全运行。工程师在选择接触器型号、控制线圈、检测状态、软件冗余控制和预充失败保护等方面提供了具体建议。

weixin_43199439的博客 812

Misc-RAR隐写

题目来自于:XCTF的SimpleRAR,由于涉及到许多新知识,所以写篇小文子记录一下。 一、下载完后是一个压缩包。 里面就有一个flag.txt,打开之后发现有一串字符是flag is not here,而且我们查看他的文件大小,只要十六字节,绝对不可能再藏着什么信息了。 然后把压缩包拉到010editor里面,发现一下子出来好多新的内容,很明显是有夹杂着的附加文件。 二、rar文件头信息。 rar 是由一个一个 block 组成的,每个 block 有以下几个部分 ...

admin的博客 1361

JAVA中多态的理解

JAVA中多态的理解以及使用。

zhangguan96的博客 5170

uni-app - 将 base64 图片编码转为 Blob 本地文件路径(把base64类型的图片,转换成blob二进制文件流)适用于 uni-app / vue.js / JavaScript

uni-app/vue.js/JavaScript将base64转Blob,uniappapp端如何将图片的base64编码转换成File对象或Blob,uni-app/vue.js/JavaScript中拿到base64转blob对象,uniapp图片base64格式转blob格式方法,uniapp上传图片压缩转base64码与base64转图片路径,Base64/Blob/File图片文件转换,url、base64、blob相互转换方法,读取本地文件为Base64并转成B

🏆 前端领域优质创作者 1万+

java多态的理解及实现原理

为了方便理解,鄙人觉得回答了下面这几个问题,这玩意大概就理解了: 1.多态是个什么鬼? 2.为啥需要多态?多态的优势在哪?劣势在哪? 3.如果需要,那么它是怎么实现的,原理是什么 4.如何使用和使用场景是什么? 下面开始回答上面的问题,额,好吧,这个是我百度了好多地方然后结合自己理解搞的,不过基本就是这个意思 先从1搞起: 官方是说: 接口的多种不同的实现方式即为多态。 多态性是...

z936689039的博客 1857

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

java的多态怎么理解_JAVA多态的理解

面向对象的三大特性:封装、继承、多态,其中最难理解的就是多态以下是网上某大神给的一个例子:1.继承关系classA{publicStringshow(Dobj){return("AandD");}publicStringshow(Aobj){return("AandA");}}classBextendsA{publicStringshow(Bobj){re...

weixin_35792236的博客 388

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Java 封装、继承、多态的理解

更好的阅读体验:Java封装、继承、多态的理解 1.封装 封装:就是隐藏对象的属性和实现细节,仅对外提供公共访问方式。让使用者知道的才暴露出来,不需要让使用者知道的全部隐藏起来 封装的好处:避免使用者直接操作属性值,隐藏类的实现细节;让使用者只能通过程序员规定的方法来访问数据;可以方便的加入存取控制语句,限制不合理操作,提高程序安全性。 1.1.封装的实现 Java是使用“访问控制符”来控制哪些细节需要封装的,哪些细节需要暴露的。 Java中有4种访问控制符,分别为private,defaul.

持 开源思想,撰 必胜所学,望 勤学者,无难处 5954

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Java 多态理解

多态:同样的引用调用同样的方法却做了不同的事情。 概述: 在设计一个方法时,通常希望该方法具备定的通用性。 例如要实现一个动物叫的方法,由于每种动物的叫声是不同的,因此可以在方法中接收一个动物类型的参数,当传入猫类对象时就发出猫类的叫声,传人犬类对象时就发出犬类的叫声。在同一个方法中,这种由于参数类型不同而导致执行效果各异的现象就是多态。 在Java中为了实现多态,允许使用一个父类类型的变...

2987345656@qq.com的博客 1万+

Java多态的理解

Java多态的理解多态的理解向上转型向下转型多态的前提条件多态的实例演示多态的优点 多态的理解 多态意味着父类型的变量可以引用子类型的对象。猫是猫,猫也是动物。其中,猫就是子类,动物就是父类。我们可以在动物中定义动物的颜色是白色,然后在猫中调用父类的颜色;同样也可以在父类中定义动物的叫声,然后在猫中重新定义父类的叫声,使之对应猫的“喵喵”。 向上转型 父类对象通过子类对象去实例化,实际上就是对象的向上转型。向上转型不用做任何强制转换,系统自动完成。 格式 :父类类型 变量名 = new 子类类型(); 向下

tiaotiaofu的博客 277

Java中的多态如何理解——详解

🎈🎈🎈本篇文章我们主要讲解的是Java中的多态,那么什么是多态呢?同类型的对象,执行同一个行为,会表现出不同的行为特征。接下来让我们一起对多态进行详细地讲解。

weixin_50635856的博客 8336

对JAVA多态的理解

对JAVA基础多态的理解 多态是JAVA中面对对象的一种体现,它也提高了一段代码的复用性和扩展性。 所谓的多态,用一句话来说:相同的行为,不同的实现 多态又分为两种:静态多态 和 动态多态 静态多态 这里的静态是与static无关,那什么叫静态多态? 它是指:某个方法在编译期就确定了运行期调用的是哪个实现。 比如: 单独的方法重写 在继承关系中,子类拥有和父类相同的行为,但是允许子类重新实现。换句...

qq_44908957的博客 871

关于Java中多态的再理解

前言 本人在复习JavaSE的过程中,发现之前对于多态的理解简直不忍直视,最可怕的是最开始,被某个坑逼培训机构的老师带成了,重载和重写是Java中的多态的体现。这错的离谱的概念。 Java三大特性之一之多态 这篇文章主要是自己对于多态的一个理解,如有不当之处,欢迎大家指正! Java的三大特性:继承、封装、多态 在Java中多态的三种形式: 1. 普通类的多态形式 2. 抽象类的多态形式 3. 接...

weixing2580的博客 208

Java中关于多态的理解

Java中关于多态的理解

我不是攻城狮的博客 879

深入理解java多态

本文转载自@宜春博主的博文,原文地址点此 在博主认为多态绝对是面向对象的第三大特性中让很多小白同学以及初学者难以跨越的鸿沟,因为多态有很多细节性的知识,不花点时间,还真不好理解多态。这么说吧,如果你觉得你已经完全理解了多态,你不妨做做下面的程序,如果你能全都答对,那没问题了,多态对你来说真的不是问题!如果在第四个就趴下了,那可以看看这篇文章,或许对你有所帮助,可能会让你重新见识到多态的魅力。 package Polymorphic; //爷爷类 class Ye { public String

Ricartc的编程梦 684

Java中多态的理解

目录 定义 多态的条件 多态的实现 多态的总结 一句话 其他情况 定义 多态就是指程序中定义的引⽤变量所指向的具体类型和通过该引⽤变量发出的⽅法调⽤在编 编译时并不确定,⽽是在程序运⾏期间才确定。(注意:成员变量没有多态性后面会讲到) 分析: 多态的主体指的是对象变量也就是对象的引用 A a1=new B( ); 指的是这里的变量a1。 只有在变量调用方法的时候才可能存在多态,成员属性比如a1.num不存在多态。 调用方法的结果在编译时并不确定,运行时确定,...

alphadunk的博客 245

Java多态【理解篇】

由一道Java多态题引发的思考,仅以记录,希望可以帮助到有需要的人; 目录 1.Java多态: 2.多态题目: 3.解题思路: 1.Java多态: 定义:多态是同一个行为具有多个不同表现形式或形态的能力。既:一种事物的多种形态,代码在编译时和运行时,类型不一致,就产生了多态。 2.多态题目: public static void main(String[] args) { /** * 父类A,B,C,D都为子类。 * * 优先级由高到低依次为:this.show(O

qq_40800950的博客 404

【理解Java的多态】

在面向对象编程(OOP)中,多态是指同一方法或操作,在不同的对象上表现出不同的行为。它允许对象通过统一的接口来调用不同的实现,从而提高代码的灵活性和可扩展性。多态的实现依赖于继承和接口的机制,是Java语言的一大特色。方法重载(Overloading):同一方法名,可以根据参数类型或数量的不同,定义多个不同的方法。方法重写(Overriding):子类重写父类的方法,方法名、参数列表保持一致,但可以实现不同的功能。

solity123的博客 970
上一篇: 什么时候使用内连接,什么时候使用外连接
下一篇: 三次握手和四次挥手的理解,通俗易懂
wang_j1
博客等级 码龄9年 5粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值