深入理解 Java 中的 `super` 关键字

别再死记硬背GNN公式了!用PyTorch Geometric从零实现一个GraphSAGE(附完整代码) 本文通过PyTorch Geometric从零实现GraphSAGE模型,深入解析图神经网络的核心原理与实战应用。文章提供完整代码示例,涵盖环境配置、邻居采样、信息聚合等关键步骤,帮助开发者掌握图表示学习技术,避免陷入公式推导的困境。适合希望将GNN应用于实际项目的中级开发者和学生。 阅读详情

在 Java 编程中,super 关键字是一个重要的工具,用于在子类中访问父类的成员和方法。它为开发者提供了更灵活的方式来重用代码和管理继承关系。本文将深入探讨 super 关键字的使用场景和常见问题。

super 的基本用法

super 关键字主要有以下几个常见用途:

  1. 调用父类的构造方法
    当子类需要初始化父类的成员时,可以通过 super 调用父类的构造方法。它必须是子类构造方法中的第一行代码。

    class Parent {
        Parent(String message) {
            System.out.println("Parent constructor: " + message);
        }
    }
    
    class Child extends Parent {
        Child(String message) {
            super(message); // 调用父类构造方法
            System.out.println("Child constructor: " + message);
        }
    }
    
    public class Main {
        public static void main(String[] args) {
            Child child = new Child("Hello, World!");
        }
    }
    

    输出:

    Parent constructor: Hello, World!
    Child constructor: Hello, World!
    
  2. 访问父类的成员变量
    当子类中定义了与父类同名的成员变量时,可以通过 super 来访问父类的变量。

    class Parent {
        String name = "Parent";
    }
    
    class Child extends Parent {
        String name = "Child";
    
        void printNames() {
            System.out.println("Child name: " + name);
            System.out.println("Parent name: " + super.name);
        }
    }
    
    public class Main {
        public static void main(String[] args) {
            Child child = new Child();
            child.printNames();
        }
    }
    

    输出:

    Child name: Child
    Parent name: Parent
    
  3. 调用父类的方法
    如果子类重写了父类的方法,但仍然需要调用父类的实现,可以通过 super 关键字。

    class Parent {
        void display() {
            System.out.println("Display from Parent");
        }
    }
    
    class Child extends Parent {
        @Override
        void display() {
            super.display(); // 调用父类的方法
            System.out.println("Display from Child");
        }
    }
    
    public class Main {
        public static void main(String[] args) {
            Child child = new Child();
            child.display();
        }
    }
    

    输出:

    Display from Parent
    Display from Child
    

注意事项

  1. super 只能用在子类中
    只有在子类中才能使用 super 关键字。如果试图在普通类或静态上下文中使用 super,编译器会报错。

  2. 必须在构造方法的第一行使用 super
    如果需要在子类构造方法中调用父类的构造方法,super 必须是该方法的第一行代码。否则,会引发编译错误。

  3. super 不可用于静态方法
    由于静态方法属于类本身而不是对象,super 不能在静态方法中使用。

常见问题

子类是否必须调用父类的构造方法?

是的,Java 要求每个子类的构造方法必须调用其直接父类的构造方法。如果没有显式调用,编译器会自动插入对父类无参构造方法的调用。如果父类没有无参构造方法,且子类未显式调用父类构造方法,则会出现编译错误。

super 和 this 的区别是什么?

  • this 关键字指的是当前类的实例。
  • super 关键字指的是当前类的父类。
  • 在构造方法中,this 用于调用当前类的其他构造方法,而 super 用于调用父类的构造方法。

结语

super 关键字是 Java 语言中处理继承的重要工具。通过合理使用 super,可以清晰地表达子类和父类之间的关系,避免代码冗余,提高代码的可维护性。希望本文能帮助你更好地理解和应用 super 关键字。

Android11原生设置屏幕亮由Gamma变化改为线性变化 从Android9 开始屏幕亮度调解变成非线性变化,这样的话就会出现 之前亮度变化很小,到后面时变化亮度很快; 修改为线性变化,只需要修改 ./frameworks/base/packages/SettingsLib/src/com/android/settingslib/display/BrightnessUtils.java /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache L 阅读详情

相关推荐

解决Keil uVision许可证管理中Unknown Product错误

嵌入式开发中,IDE工具的许可证管理是确保开发环境正常运行的关键环节。Keil uVision作为ARM架构的主流开发工具,其许可证系统采用加密验证机制,通过产品版本识别实现授权控制。当出现Unknown Product错误时,通常源于版本兼容性问题或区域发行版差异,这直接影响开发工具链的可用性。特别是在维护历史项目或使用中国特供版时,开发者常会遇到此类问题。通过分析许可证类型、调整安装配置或建立虚拟化开发环境等工程实践方案,可以有效解决这类授权验证故障,保障嵌入式项目的持续集成与交付效率。

weixin_33743248的博客 363

java语言之super关键字详解

super关键字详解,super在JVM中的内存图模型,解释IDEA与eclipse使用快捷键生成构造方法时第一行出现super()是为什么

ocean&21的博客 1万+

基于STM32与SimpleFOC实现直流无刷电机开环控制的实战指南

本文提供了一份基于STM32微控制器与SimpleFOC开源库实现直流无刷电机开环控制的详细实战指南。内容涵盖硬件连接、PlatformIO环境搭建、核心代码解析及上电测试,旨在帮助开发者快速验证硬件并理解开环控制的基本原理,为后续实现高性能的闭环FOC控制奠定基础。

xxx12的博客 959

Java关键字 —— super 详细解释!一看就懂 有代码实例运行!

super在父类、子类相关联的操作中经常被用到是Java中的,用于(超类)的成员变量、方法或构造函数。在没有继承和被继承关系的类中,几乎不被使用我个人喜欢将super理解为 “父类的”, “引用父类的”

dream_ready的博客 1万+

LabVIEW电压信号采集系统:从零搭建到科研实战

本文详细介绍了如何从零开始搭建一个基于LabVIEW的电压信号采集系统。内容涵盖硬件选型(如NI USB-6002数据采集卡)、软件环境配置、核心程序开发(包括多通道同步采集、数据自动保存)以及高级功能优化。系统支持自定义采样率与时长,并提供了完整的LabVIEW程序框图和配套的Python数据分析脚本,旨在帮助科研人员和工程师快速构建稳定、高效的专属数据采集方案,提升实验自动化水平。

gold8的专栏 460

Python接口自动化测试实战:Requests+Pytest+Excel+Allure框架搭建指南

接口自动化测试是现代软件工程中保障软件质量的关键实践,其核心原理是通过脚本模拟客户端请求,自动验证API的功能、性能和可靠性。在Python技术栈中,Requests库以其简洁的API成为处理HTTP请求的基石,而Pytest框架则凭借其灵活的Fixture机制和强大的参数化功能,为测试用例的组织与执行提供了优雅的解决方案。结合Excel进行数据驱动测试,能够有效实现测试数据与脚本逻辑的分离,提升协作效率;最终通过Allure生成可视化测试报告,清晰呈现测试结果与过程。这套技术组合(Requests, Py

weixin_28677451的博客 304

Java中super关键字及super()的使用

Java中super关键字及super()的使用:1、super的使用:(1)super是一个关键字。(2)super和this很类似,我们对比着学习。2、先复习一下this关键字的使用。(1)this能出现在实例方法和构造方法中; (2)this的语法是“this.”和“this()”; (3)this不能出现在静态方法中; (4)this大部分情况下是可以省略的; (5)this.什么时候不能省略呢? 在区分局部变量和实例变量时不能省略。例如: (6)this()只能出现在构造方法的第一行,通过当前的构

m0_67401055的博客 6717

ANSYS接触分析实战:从法兰连接案例看接触刚度与穿透容差的黄金搭配

本文以法兰连接为实战案例,深入解析了ANSYS接触分析中接触刚度(FKN)与穿透容差(FTOLN)的参数设置策略。通过系统性敏感性分析,揭示了这对关键参数的博弈关系与调优逻辑,旨在帮助工程师在保证计算收敛的同时,获得高精度的有限元分析结果,有效解决工程中的非线性接触难题。

moon9的博客 312

Java中super详解

目录 Java中super详解 super的作用: 1. 通过super可以访问父类的构造方法 2. 通过super可以访问父类的属性(非私有) 3. 通过super可以访问父类的方法(非私有的方法) Java中super详解 在说super之前先说一下Java中的继承,继承是Java中面向对象编程技术的重要基石,因为它允许创建分等级层次的类。继承就是子类继承父类的行为和特征,就是方法和属性。私有的属性和方法子类是能继承的,但是子类无法直接调用,调用父类的私有属性需...

weixin_44722237的博客 1万+

小红书高时效推荐系统背后的技术升级

在小红书 APP 中,推荐系统的实效性对推荐效果有着特别重要的影响,特别是作为 UGC 平台,小红书的推荐系统如果能更快地捕捉用户与笔记之间的变化和联系,就能够给推荐带来更好的效果。在2021年上半年,首页推荐的召回、粗排、精排的主要模块都保持在天级更新的状态,我们通过持续迭代,将召回 CF 渠道、召回索引更新、召回模型/粗精排模型的训练都做到了分钟级更新,为首页推荐的分发效率带来飞跃式提升,并给业务侧带来非常显著的收益。 小红书站内“最近一天内发布的新笔记”在首页的曝光占比一直很高,这段时间更是快速

REDtech_1024的博客 3521

【2026年阿里巴巴集团暑期实习- 4月25日-算法岗-第二题- 矩阵计数】(题目+思路+Java&C++&Python解析+在线测试)

摘要: 给定两个非负整数序列a和b,构造n×m矩阵C,其中C[i][j]=a[i]×b[j]。统计矩阵中元素≥k的数量。解法是先对数组b排序,然后对于每个a[i],若k=0则直接累加m;若a[i]=0且k>0则跳过;否则计算需要的最小b[j]值,在排序后的b中使用二分查找确定满足条件的元素数量。时间复杂度为O((n+m)log m),空间复杂度O(1)。代码实现了排序和二分查找的高效组合。

m0_73659489的博客 64

Java关键字super解释

java关键字应用,java关键字解释,super

ニャンコちゃん的博客 1万+

YOLOv13结合Sobel边缘检测算子,实现EIEM(Edge Information Enhancement Module,边缘信息增强模块),强化空间特征提取

EIEM模块通过巧妙地结合Sobel边缘检测算子和现代卷积网络架构,实现了显式边缘信息增强的创新设计。这种方法不仅提高了网络对边缘特征的敏感性,还保持了良好的计算效率和模块化特性。 从技术实现角度看,EIEM展示了如何将经典计算机视觉算法无缝集成到深度学习框架中,为构建更强大、更可解释的视觉模型提供了新的思路。随着对边缘信息重要性认识的不断深入,以及对网络可解释性需求的增长,EIEM这样的显式特征增强模块将在未来的计算机视觉研究中发挥越来越重要的作用。

FJN110的博客 906

Java新人之路 -- 继承

继承 1.什么叫继承? ​ 当多个类中描述的属性及行为是相同的或者大部分是相同的,此时就可以考虑将这些内容抽离出来存放到一个单独的类中。 ​ 这个单独的类叫做父类(基类或者超类),其他的多个子类用继承的方式获取这些属性和方法,从而简化代码 ​ 子类继承父类,那么子类就可以拥有父类中所有的公共的(public)属性及方法 2.extends关键字 ​ 语法: class A extends B{} ​ 这就是类A继承自B 3.作用 可以有效的提高代码的利.

m0_51709303的博客 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

java三大特性之继承

继承 继承是类和类之间的一种关系。继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模 继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。extends的意思是“扩展”。子类是父类的扩展。子类和父类之间,从意义上来讲应该具有“is a”的关系 java中类只有单继承,没有多继承(一个儿子只能有一个爸爸,一个爸爸可以有多个儿子) ctrl+h可以打开查看继承关系 java中所有的类都默认直接或者间接继承object private修饰的私有的东西

ZCF的博客 151

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

super,this关键字

super注意点: 1.super调用父类的构造方法,必须在构造方法的第一个. 2.super必须只出现在子类的方法或者构造方法中. 3.super和this不能同时出现 this注意点 this和super所代表的的对象不同. this:表示本身调用者的对象 super:代表父类对象的应用 前提: this没有继承也可以使用;super只能在继承条件下才能使用. 构造方法 this()本类的构造; super():父类的构造; **注意:**当我们new 一个子类后,默认先运行父类的构造方法,然后再运行子

m0_49797779的博客 250

深度学习工具包 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")

java构造器super_JAVA构造器、this、super

构造器是为了创建一个类的实例。这个过程也可以在创建一个对象的时候用到:Platypusp1=newPlatypus();相反,方法的作用是为了执行java代码。修饰符,返回值和命名的不同构造器和方法在下面三个方便的区别:修饰符,返回值,命名。和方法一样,构造器可以有任何访问的修饰:public,protected,private或者没有修饰(通常被package和friendly调用...

weixin_33746819的博客 333

enum java 嵌套_java重要基础知识汇总

关于java语言设计理念下面的知识是关于java语言从设计角度出发的一些知识点。抽象类与接口的区别是什么首先来看看接口的定义:接口,在JAVA编程语言中是一个抽象类型,主要是抽象方法的集合,接口中的变量定义必须为public static final类型。接口通常以interface来声明。抽象类: 从面向对象的角度来讲,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样,并不是 所有的类...

weixin_39678525的博客 188

Java类与类之间的继承关系(1),Java面试题及解析

public Man() { } } 类Man继承于Person类,这样一来的话,Person类称为父类(基类),Man类称为子类(导出类)。如果两个类存在继承关系,则子类会自动继承父类的方法和变量,在子类中可以调用父类的方法和变量。在java中,只允许单继承,也就是说 一个类最多只能显示地继承于一个父类。但是一个类却可以被多个类继承,也就是说一个类可以拥有多个子类。 1.子类继承父类的成员变量 当子类继承了某个类之后,便可以使用父类中的成员变量,但是并不是完全继承父类的所有成员变量。具体的原则如下: 1)

m0_64867839的博客 1521

Java入门之继承,学会之后继承直接ok!!!超详细!!!

本期文章主要来讲一讲什么是继承吧; 尽量做到全网最详细讲解! 文章呢还是很快乐的; 喜欢的话可以来一波三连铁铁们! 对了 订阅一下我 java专栏也是不错的选择,每天都会更新的! 喜欢点赞哦! 那我们闲话少说开始学习啦!!! Java继承机制 在我们学习继承之前先要了解一下上面是继承吧; 这个简单来说就是儿子和爹的关系,哈哈哈; 就像是儿子会继承爹的一些东西,但是儿子又会有自己的一些特别之处; 专业一点来说就是: “继承”是面向对象中的第二特征,体现了类与类之间的“is-a”关系。当两个类进行继承关联绑定

weixin_53262248的博客 361

JAVA学习笔记(二十六)

小扩展提示:java.lang.Object类是所有类的公共最高父类(祖宗类),java.lang.String就是Object的子类。1.子类构造方法当中有一个默认隐含的“super()”调用,所以一定是先调用的父类构造,后执行的子类构造。3.super的父类构造调用,必须是子类构造方法的第一个语句。方法覆盖重写的注意事项;2.在本类的成员方法中,访问本类的另一个成员方法。1.在子类的成员方法中,访问父类的成员变量。2.在子类的成员方法中,访问父类的成员方法。3.在子类的构造方法中,访问父类的构造方法。

tyryon的博客 94

java继承的内存分析_Java学习笔记-内存分析

一般方法调用的内存图像例子//只要是类名就一定是标识符//方法调用时,参数传递是‘值传递’public class Test{public static void main(String[] args){int a = 10;int b = 20;int retValue = sumInt(a,b);System.out.println("retValue: " + retValue);}publ...

weixin_42509796的博客 719

java继承:父类无无参构造器,要用super指定

public class Base { public int n1=100; protected int n2=200; int n3=300; private int n4=400; public Base(String name,int age) { System.out.println("Base(String name,int age)..."); } public void test100(){ System.

m0_58936917的博客 234

JAVA OOP继承和抽象

继承 extends 子类(派生类)和父类(超类,基类) this 表示对本类对象的引用 调用本类的属性和方法 this(); 调用本类的构造方法,必须写在构造方法中的第一行 super 表示对父类对象的引用 调用父类的属性和方法 super(); 调用父类的构造方法,必须写在构造方法中的第一行 super(); 在构造方法中 是隐式存在。 子类不能继承父类的什么? 1,私有成员 private 修饰的属性和方法 2,构造方法 3,子类和父类不在同包下,使用默认访问权限的成员 继承的特点: 1,子类(

SUNSHINE_LadBoy的博客 179

Java第六章——面向对象(三)

面向对象(下) this,super,抽象类与接口等

我的博客 186

super 和 this 的异同

目录异同superthis代码示例superthis 赶时间的看总结就好了。 异同 super super();调用父类构造方法; super.date; 调用父类的属性; super.func(); 调用父类的方法。 this this();调用构造方法 this.date; 调用本类属性; this.func(); 调用本类方法。 代码示例 super public class TestSuperAndThis extends Person{ public int length;

就这样吧 143
上一篇: Java中的synchronized:深入理解与高效使用
下一篇: Java 线程详解:从基础到最佳实践
codingexpert404
博客等级 码龄2年 196粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值