首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在main方法中调用超类

,是指在一个类的main方法中调用该类的父类的方法。

在Java中,可以通过使用super关键字来调用父类的方法。super关键字可以用于调用父类的构造方法、成员变量和成员方法。

调用父类的构造方法: 使用super关键字可以在子类的构造方法中调用父类的构造方法。这样可以确保在创建子类对象时,先执行父类的初始化操作。

调用父类的成员变量和成员方法: 使用super关键字可以在子类中调用父类的成员变量和成员方法。这样可以访问父类中定义的属性和方法,而不是子类中的同名属性和方法。

调用父类的静态方法: 在子类中无法直接通过super关键字调用父类的静态方法。因为静态方法是与类绑定的,而不是与对象绑定的。可以通过使用父类的类名来调用父类的静态方法。

调用父类的构造方法、成员变量和成员方法的示例代码如下:

代码语言:txt
复制
class SuperClass {
    int num;

    SuperClass(int num) {
        this.num = num;
    }

    void display() {
        System.out.println("SuperClass: " + num);
    }
}

class SubClass extends SuperClass {
    int num;

    SubClass(int num1, int num2) {
        super(num1); // 调用父类的构造方法
        this.num = num2;
    }

    void display() {
        super.display(); // 调用父类的成员方法
        System.out.println("SubClass: " + num);
    }
}

public class Main {
    public static void main(String[] args) {
        SubClass obj = new SubClass(10, 20);
        obj.display(); // 调用子类的成员方法
    }
}

在上述示例代码中,SubClass继承了SuperClass,并在构造方法和成员方法中使用super关键字调用父类的构造方法和成员方法。运行main方法时,会输出以下结果:

代码语言:txt
复制
SuperClass: 10
SubClass: 20

这表明在main方法中成功调用了超类的方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

反射main方法

有时候我们需要调用一个Main方法,也可说是执行这个的代码。...但是这时候这个我们还没有写好,或者这个是通过网络运行时传给我们的,我们就不可能在程序中知道我们将要运行的的名字,这时候我们可以利用java的反射机制去调用main方法,只要在我们执行的时候,将我们需要执行的的名字传递进去就可以了...这个方法进行网络编程的时候,有时候我们需要接收一个,我们只有等到接收到了才知道的名字叫什么,显然现在在写程序不实际,我们就可以利用反射的方法。...(String[] args) throws Exception { //这个是我们知道的名字情况下的调用方式 Test1.main(new String...,new String[]{"abc","efg"}); //上面的语句不能正确执行,因为Test1的参数是需要一个String数组,但是jdk接收到之后将数组

1K60
  • VC 调用main函数之前的操作

    +反汇编分析 keywords: VC++, 反汇编, C++实现原理, main函数调用, VC 运行环境初始化 --- C/C++语言中规定,程序是从main函数开始,也就是C/C++语言中以..._0 这段代码将环境变量、命令行参数和参数个数作为参数传入main函数。...C语言中规定了main函数的三种形式,但是从这段代码上看,不管使用哪种形式,这三个参数都会被传入,程序员使用哪种形式的main函数并不影响VC环境调用main函数时的传参。...只是我们代码不使用这些变量罢了。 到此,这篇博文简单的介绍了下在调用main函数之前执行的相关操作,这些汇编代码其实很容易理解,只是注册异常的代码有点难懂。...,调用这个函数之前是不能进行printf的 调用 GetCommandLineA函数获取命令行参数 调用 GetEnvironmentStringsA 函数获取环境变量 调用main函数 ---

    2.1K20

    关于使用MethodHandle子类调用祖父重写方法的探究

    关于使用MethodHandle子类调用祖父重写方法的探究 注:这个例子原本出现在周志明先生的《深入理解Java虚拟机》--虚拟机字节码执行引擎章节,介于有读者朋友有疑问,这里基于Java代码层面解释一下...这里直接看Son的thinking方法(关于为何这样实现,《深入理解Java虚拟机》读书笔记(七)--虚拟机字节码执行引擎(下)也解释了)。...普通的方法调用,这个this参数是虚拟机自动处理的,表示的是当前实例对象,我们方法可以直接使用。...但是我们这个MethodHandle的例子,相当于是模拟了invoke*指令的处理,手动调用invoke方法就需要指定这个"this"参数。...基于这个事实,我们这时可以直接在GrandFather的thinking方法调用Son独有的方法,使用反射或者直接类型强制转换为Son就行了。

    9.5K30

    Javamain方法详解

    Java声明为public的任何方法或变量都可以从该类的外部访问。 而JVM访问main方法显然不是的内部访问,因此main方法需要定义为public的方法。...2、为什么是静态的(static) 静态可以让JVM调用main方法的时候更加方便,不需要通过对象调用。...main方法定义为static的,则对于虚拟机来说,程序启动之后并不需要创建一个实例,就可以去调用这个main方法。...也可以用Runtime或者System.exit()来退出。 5、String [] args String[] args,是main方法唯一可以改变的地方!...Finalizer Finalizer:这个线程也是main线程之后创建的,其优先级为10,主要用于垃圾收集前,调用对象的finalize()方法;关于Finalizer线程的几点: 1)只有当开始一轮垃圾收集时

    1.7K20

    Python定义Main函数

    本文结束时,您将了解以下内容: 什么是特殊的name变量以及Python如何定义它 为什么要在Python中使用main()函数 Python定义main()函数有哪些约定 main()函数应该包含哪些代码的最佳实践...Python的基本main()函数 一些Python脚本,包含一个函数定义和一个条件语句,如下所示: 此代码,包含一个main()函数,程序执行时打印Hello World!。...本文将如下示例文件保存为execution_methods.py,以探索代码如何根据上下文改变行为: 在此文件,定义了三个对print()函数的调用。前两个打印一些介绍性短语。...基于命令行执行 在这类方法,Python脚本将通过命令行来执行。 执行脚本时,无法与Python解释器正在执行的代码交互。...()函数调用

    3.9K30

    javamain方法的运行

    学过java的都知道main方法是学习java的开始,也是程序的入口,不过你有多少个或程序,线程,他们的入口方法都是main()。...main方法是一个静态的方法,所以这个方法是属于的,而不是对象的; main() 方法,参数类型是 “String[] args”, 意味着启动Java应用的同时,传递一个 String 类型的数组来定制化应用的初始化属性...执行过程: 现在的问题是:JVM是如何加载,又是如何调用 main() 方法的?...该类的 main() 方法被执行之前,它会首先完成 装载、链接、初始化其他被依赖等工作。...随后,被调用的 println() 方法又会生成一个栈帧被推入到 “main” 线程所在的栈。当 main() 方法执行完毕,整个的栈会被销毁,整个的应用也就正常结束了。

    1.2K20

    Python 子类调用方法详解(单继承、多层继承、多重继承)

    __init__(self) # 子类调用方法:父名.方法名称(参数) if __name__ == '__main__': b = SubClassB() 运行结果: >>> ==...(如SubClassB的父由FatherA变为FatherD时),必须遍历整个定义,把子类中所有的父名全部替换过来 2、子类通过“super”方法调用方法 场景1、单层继承 class...__init__() # 子类调用方法:super().方法名称(参数) if __name__ == '__main__': b = SubClassB() class FatherA...__init__() # 子类调用方法:super(type, obj).方法名称(参数) if __name__ == '__main__': b = SubClassB() 运行结果...__init__(self) # 子类调用方法:super(type, type).方法名称(参数) if __name__ == '__main__': b = SubClassC()

    3.1K30

    C++反射调用.NET(一) 反射调用第一个.NET方法

    为什么要在C++调用.NET 一般情况下,我们常常会在.NET程序调用C/C++的程序,使用P/Invoke方式进行调用,在编写代码代码的时候,首先要导入DLL文件,然后根据C/C++的头文件编写特殊的...注意,本文说的C++反射调用,不是对C++自身进行封装的反射功能,而是C++/CLI代码反射调用.NET代码,原理上跟你.NET应用反射调用另外一个.NET的程序集一个道理。...我们先在NetLib项目写一个简单的.NET ,这个方法内部没有复杂的业务逻辑代码,仅仅用来供反射调用测试: namespace NetLib { public class User...C++的成员用 -> 符号调用,命名空间或者的静态成员,用::调用,例如上面的构造函数的代码: Assembly^ ass = Assembly::LoadFrom(this->assemblyFile...C++/CLI中使用反射 反射调用第一个.NET方法 下面的方法,将会反射调用 User的一个最简单的方法 : public int GetUserID(string IdString){} 该方法只有一个一个参数和一个简单的返回值

    3.2K100

    main方法之前,到底执行了什么?

    本人在做接口测试的时候,需要用一个公共来把所有的执行的代码,然后这个公共有hsot和hosttype等属性来区分各个测试环境,然后去不同的地方取用例和请求接口。...中间遇到了一些坑,主要就是对java代码执行循序,特别是main方法之前的代码执行顺序了解不深入导致的,中间有多个继承关系也有点扰乱了思路。下面分享一下自己这个错误的复现步骤。...首先放一下一个单独的的代码执行顺序,下面是代码: package practice; public class Cbc { public static Cbc cbc = new Cbc()...; } } 下面是执行结果: 我是Cbc构造方法! 我是Cbc静态代码块! 进入程序入口了! 这个就比较简单了,先执行静态变量赋值,然后执行静态代码块,然后再去执行main方法。...知道了这个逻辑,就可以做一些事情,比如Abc有一个int对象num的值是1,是公用默认的,但是我想在某一个特殊(Cbc)情况下使用num值是2,那么我可以Bbc里面对num重新赋值,使得我使用Cbc这个情况下时候

    72530

    怎么用super调用构造函数?

    这些重复的代码它的已经存在,这样做效率很低,而且,这意味着子类必须被同意具有访问这些成员的权力。然而,有时你希望创建一个,该可以保持它自己实现的细节(也就是说,它保持私有的数据成员)。...任何时候一个子类需要引用它直接的,它可以用关键字super来实现。super有两种通用形式。第一种调用的构造函数。第二种用来访问被子类的成员隐藏的成员。...使用super调用构造函数 子类可以调用定义的构造函数方法,用super的下面形式:java复制代码super(parameter-list); 这里,parameter-list定义了构造函数所用到的所有参数...例如,下面是BoxWeight一个完整的实现,BoxWeight具有以不同方法构造盒子的构造函数。每种情况下,用适当的参数调用super( )。...让我们复习super( )的关键概念。当一个子类调用super( ),它调用它的直接的构造函数。这样,super( )总是引用调用直接的。这甚至多层次结构也是成立的。

    12810

    python 不同包 方法 之间的调用详解

    hello.py中导入ORM.py这个文件的时候,采用 import ORMPackage.ORM 或者 import ORM u = User(id = 123, name=’codiy...’, password=’123456′) 两种方式均报错 错误提示: name ‘***’ is not defined 或者 No module named ORM 解决办法: 方法一...from ORM import User u = User(id = 123, name='codiy', email='codiy_huang@163.com', password='123456') 方法二...circular as c c.girth(10) #调用计算圆形周长的函数 r.girth(10,,20) #调用计算矩形周长的函数 也可以直接把函数起别名,这样在用函数的时候直接使用函数别名就行了...from… import ….as… 以上这篇python 不同包 方法 之间的调用详解就是小编分享给大家的全部内容了,希望能给大家一个参考。

    2.4K10
    领券