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

Java,将主类传递给子类,编码风格不好?

关于Java中将主类传递给子类的问题,这里有一个简单的示例来说明如何实现这个功能。首先,我们需要创建一个主类,然后在子类中使用继承来获取主类的信息。

主类:

代码语言:java
复制
public class MainClass {
    public static void main(String[] args) {
        System.out.println("这是主类");
        SubClass subClass = new SubClass();
        subClass.printInfo();
    }
}

子类:

代码语言:java
复制
public class SubClass extends MainClass {
    public void printInfo() {
        System.out.println("这是子类");
    }
}

在这个例子中,我们创建了一个名为MainClass的主类,并在其中定义了一个main方法。然后,我们创建了一个名为SubClass的子类,并使用extends关键字继承了MainClass。在子类中,我们定义了一个名为printInfo的方法,该方法将在子类中调用。

MainClassmain方法中,我们创建了一个SubClass的实例,并调用了printInfo方法。这将输出以下内容:

代码语言:txt
复制
这是主类
这是子类

这个例子展示了如何在Java中将主类的信息传递给子类。关于编码风格,可以参考一些流行的Java编码规范,例如Google的Java编码规范,以确保代码的可读性和可维护性。

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

相关·内容

3小时Scala入门

(4)使用sbt或者maven等项目管理工具项目及其依赖编译成jar包, 再通过java -jar HelloWorld.jar执行。...Scala有3中定义风格java风格,简写风格,和case风格。 简写风格可以在声明的参数前加上val即表示为的属性,省去属性的绑定。...case本来设计用来进行模式匹配,自带apply和unapply方法,实例化时可以不用new关键字。除了做了优化用于模式匹配,其它方面和普通没有什么区别。 1,java风格 ? ? ?...二十二,构造器 Scala的包括一个构造器和若干个(0个或多个)辅助构造器。 构造器即定义参并用来初始化对象属性的构造器,它是隐含的。...二十四,继承和特征 Scala可以通过extends关键字指定从某个超(父)进行继承。 只有子类构造器可以调用超构造器。 子类可以使用super引用超的某个属性和方法。

1.6K30

3小时Scala入门

(4)使用sbt或者maven等项目管理工具项目及其依赖编译成jar包, 再通过java -jar HelloWorld.jar执行。...Scala有3中定义风格java风格,简写风格,和case风格。 简写风格可以在声明的参数前加上val即表示为的属性,省去属性的绑定。...case本来设计用来进行模式匹配,自带apply和unapply方法,实例化时可以不用new关键字。除了做了优化用于模式匹配,其它方面和普通没有什么区别。 1,java风格 ? ? ?...二十二,构造器 Scala的包括一个构造器和若干个(0个或多个)辅助构造器。 构造器即定义参并用来初始化对象属性的构造器,它是隐含的。...二十四,继承和特征 Scala可以通过extends关键字指定从某个超(父)进行继承。 只有子类构造器可以调用超构造器。 子类可以使用super引用超的某个属性和方法。

1.6K30

3小时Scala入门

(4)使用sbt或者maven等项目管理工具项目及其依赖编译成jar包, 再通过java -jar HelloWorld.jar执行。...Scala有3中定义风格java风格,简写风格,和case风格。 简写风格可以在声明的参数前加上val即表示为的属性,省去属性的绑定。...case本来设计用来进行模式匹配,自带apply和unapply方法,实例化时可以不用new关键字。除了做了优化用于模式匹配,其它方面和普通没有什么区别。 1,java风格 ? ? ?...二十二,构造器 Scala的包括一个构造器和若干个(0个或多个)辅助构造器。 构造器即定义参并用来初始化对象属性的构造器,它是隐含的。...二十四,继承和特征 Scala可以通过extends关键字指定从某个超(父)进行继承。 只有子类构造器可以调用超构造器。 子类可以使用super引用超的某个属性和方法。

3.5K20

Java之面向对象概述,,构造方法,static,方法,对象

比如鸽子和鸟类具有相同的属性和行为,可以在创建鸽子类鸟类拿来复用,并且保留鸟类具有的属性和行为。 继承主要是利用特定对象之间的共有属性。...矩形是四边形的子类,而正方形是矩形的子类。 ? 多态: 对象应用于子类的特征就是多态。 多态性允许以统一的风格编写程序,以处理种类繁多的已存在的以及相关。...该统一风格可以由父来实现,根据父统一风格的处理,就可以实例化子类的对象。由于整个事件的处理都只依赖父的方法,所以日后只需要维护和调整父方法就好。这样就降低了维护的难度,节省了时间。...一个螺丝延伸出不同的子类子类继承了父的特征,子类有具有自己的特征,同样的固定行为,它们可以固定不同的对象,这就是多态化结构。 二、的特性 1.成员变量:成员变量就是Java中累的属性。...方法是的入口点,他定义了程序从何处开始:方法提供对程序流向的控制,Java编译器通过方法来执行程序。

97450

cglib动态代理实现原理_java设计模式之代理模式

:一键三连 动态代理结束 */ cglib代理 Cglib代理也叫作子类代理,它使目标对象不需要实现接口,是在内存中构建一个子类对象从而实现对目标对象功能扩展,有的也Cglib代理归属到动态代理。...Cglib是一个高性能的代码生成包,它可以在运行期扩展java与实现java接口。被许多AOP的框架使用(如Spring AOP)。...特别注意:代理的不能为final,否则报错java.lang.IllegalArgumentException ,如果目标对象的方法如果为final或static,那么就不会被拦截(即不会执行目标对象额外的业务方法...public static void main(String[] args) { //创建目标对象 TeacherDao target = new TeacherDao(); //获取到代理对象,并且目标对象传递给代理对象...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站立刻删除。

45710

设计模式-代理模式(静态代理、动态代理、cglib代理)

:" + name); } } (插播反爬信息 )博CSDN地址:https://wzlodq.blog.csdn.net/ 代理对象 public class ProxyFactory {...:一键三连 动态代理结束 */ cglib代理 Cglib代理也叫作子类代理,它使目标对象不需要实现接口,是在内存中构建一个子类对象从而实现对目标对象功能扩展,有的也Cglib代理归属到动态代理。...Cglib是一个高性能的代码生成包,它可以在运行期扩展java与实现java接口。被许多AOP的框架使用(如Spring AOP)。...特别注意:代理的不能为final,否则报错java.lang.IllegalArgumentException ,如果目标对象的方法如果为final或static,那么就不会被拦截(即不会执行目标对象额外的业务方法...static void main(String[] args) { //创建目标对象 TeacherDao target = new TeacherDao(); //获取到代理对象,并且目标对象传递给代理对象

34950

WebApplicationInitializer向左,ServletContextInitializer向右

探测到所有第三方实现,然后Servlet容器ServletContext对象依次传递给第三方实现的onStartup()方法(不用头疼ServletContext对象的获取问题了,Servlet容器直接传给你...Web应用有两种部署模式,一是Java Web应用打成war包,然后将其置于外部Servlet容器中运行,这种模式在SSH时代较为常用;另一种是Java Web应用打成jar包,其内嵌Servlet...从上述源码来看,TomcatStarter暴露了一个含参构造方法,期望外部通过该含参构造方法ServletContextInitializer的实现进来;TomcatStarter的调用者会进来一个...这些RegistrationBean后缀的都是ServletContextInitializer的子类,这一点可以回过头看一下本节开头贴出的关于ServletContextInitializer的继承关系图...4 总结 WebApplicationInitializer与ServletContextInitializer虽然都用于以一种硬编码风格向Servlet容器注册Servlet、Filter和Listener

68630

java 汉字 %ms对不齐_Java中文问题及最优解决方法

那么,在这些过程中,JDK和JVM是如何这些文件如何编码和解码并运行的呢?  这里,我们以中文win2k操作系统为例说明JAVA是如何来编码和被解码的。  ...对于这种直接在console上运行的,它的转化过程可用图1更加明确的表示出来:  (不好意思,图不上来,只好让大家自己去想像图的样子了,我想看了上文是可以想来图来的。)  ...这种EJB和不可以直接运行的支持, 它的转化过程可用图2更加明确的表示出来:  图2  (不好意思,图不上来,只好让大家自己去想像图的样子了,我想看了上文是可以想来图来的。)  ...这种JSP代码和Servlet,它的转化过程可用图3更加明确地表示出来:  (不好意思,图不上来,只好让大家自己去想像图的样子了,我想看了上文是可以想来图来的。)  ...对于JAVA程序和数据库之间的数据传递,我们可以用图4清晰地表示出来  图4(不好意思,图不上来,只好让大家自己去想像图的样子了,我想看了上文是可以想来图来的。)

87340

03 Java的运算符 及 表达式

注意 Java 语言中字母采用的是双字节 Unicode 编码。Unicode 叫作统一编码制,它包含了亚洲文字编码,如中文、日文、韩文等字符。...用 private 修饰的域和方法只能被该类自身访问和修改,不能被任何其他(包括该类的子类)来获取和引用....通常,出于系统设计的安全考虑,的成员属性定义为 private 保护起来,而的成员方法 public 对外公开, 这是封装特性的一个体现....运算符详解 Java语言中的运算符(也称操作符)在风格和功能上都与 C 和 C++ 极为相似。 按操作数分为一元,二元和三元 按照功能: 包含算术,关系,逻辑,位,赋值组合等几种运算符....参考 丁振凡编著,《Java语言程序设计(第2版)》华东交大版,2014.9 免费公开课_智播客和黑马程序员免费公开课 http://yun.itheima.com/open Java从小白到大牛-

34110

C++编程经验(6):使用C++风格的类型转换

为什么推荐使用C++风格类型转换? 不是说别的风格的类型转换机制不好,但是写C++代码的话,既然人家有,那就慢慢的适应嘛,入乡随俗。..., // 不能用在向继承子类进行类型转换。 ---- dynamic_cast,它被用于安全地沿着的继承关系向下进行类型转换。...这就是说,你能用 dynamic_cast 把指向基的指针或引用转换成指向其派生或其兄弟的指针或引用,而且你能知道转换是否成功。...失败的转换返回空指针(当对指针进行类型转换时)或者抛出异常(当对引用进行类型转换时): father* pw; ......传递给 updateViaRef 函数 SpecialWidget pw 指针,如果 pw ---- 这四个类型转换符中的后一个是 reinterpret_cast。

55920

JavaScript:prototype&apply&call

prototype继承也有四个比较明显的缺点:   缺点一:父的构造函数不是像JAVA中那样在给子类进行实例化时执行的,而是在设置继承的时候执行的,并且只执行一次。...缺点二:由于父的构造函数不是在子类进行实例化时执行,在父的构造函数中设置的成员变量到了子类中就成了所有实例对象公有的公共变量。...缺点三:如果父的构造函数需要参数,我们就没有办法了。   缺点四:子类原本的原型对象被替换了,子类本身的constructor属性就没有了。...五、call和apply方法 call与apply的第一个参数都是需要调用的函数对象,在函数体内这个参数就是this的值,剩余的参数是需要传递给函数的值,call与apply的不同就是call的值可以是任意的...,而apply的剩余值必须为数组。

49721

本着什么原则,才能写出优秀的代码?

而把这些硬编码提取出来,设计成可配置的,当需要变更时,直接改一下配置就可以了。 再来,对参数是不是有校验?或者容错处理?假如有一个 API 被第三方调用,如果第三方没按要求参,会不会导致程序崩溃?...子类只能通过新添加方法来扩展功能,父子类都可以实例化,而子类继承的方法和父是一样的,父调用方法的地方,子类也可以调用同一个继承得来的,逻辑和父一致的方法,这时用子类对象对象替换掉时,当然逻辑一致...第二个是多态,而多态的前提就是子类覆盖并重新定义父的方法。 为了符合 LSP,应该定义为抽象,并定义抽象方法,让子类重新定义这些方法。...如果这个设计修改为符合接口隔离原则的话,就必须对「接口 I」进拆分。 在这里,我们原有的「接口 I」拆分为三个接口,拆分之后,每个只需实现自己需要的接口即可。...第一个问题: 如果张三又新学习了一门课程,那么就需要在 Test() 中增加新的方法。随着需求增多,Test() 会变得非常庞大,不好维护。

38440

Java】基础32:一道面试题,弄懂线程的创建原理

我们看下Thread的run方法源码: 这就是Java中Thread的run方法,这已经是Java内部开发人员编写好的,我们没法修改。 那么现在问题来了,target是啥呢?...也就是说,我们创建了一个Runnable的实现对象run,我们将它作为参数进了Thread里面,它就是target。...②如果Thread对象在创建时初始化赋值了: 进去的参数是我们创建的一个Runnable的实现对象。...父引用指向子类对象,在调用方法时,执行的是子类重写后的方法,这是多态里的知识点,也就是说②①给覆盖了。 还记得那句口诀么?编译看左边,运行看右边 ②中左边是啥?Thread引用,也就是父引用。...实现Runnable接口重写run方法,这个run方法和Thread的run方法没有直接联系,但是如果Runnable的实现对象作为构造参数传递给Thread了(也就是target),Thead的run

43240

Scala 基础 (五):面向对象(上篇)

命名规范:按照如下规则命名com.公司名.项目名.业务模块名 Scala中的两种包管理方式 第一种:和 Java 的包管理风格相同,每个源文件一个包,包名用.进行分隔以表示包的层级关系,包名和源文件所在路径不要求必须一致...private 为私有权限,只在的内部和伴生对象中可用。 protected 为受保护权限,同类、子类可以访问,同包无法访问。...中的封装:属性私有化,提供getter和setter,用于赋值和获取值。...class 子类名 extends 父名 { 体 } 子类继承父的属性和方法。 Scala和Java一样都是单继承的。 继承的调用顺序,父为先,子类在后。...Student(name: String,age: Int) extends Person(name ,age ){ var stuNo: String = _ println("3.子类构造器调用

29320

Java AWT 图形界面编程】Container 容器总结

文章目录 一、AWT 简介 二、AWT 核心继承体系 三、Container 容器子类 四、Container 容器常用 API 五、Frame 窗口示例 六、Panel 示例 七、窗口中文乱码处理...虚拟机调用本地 API 实现的 ; 由于 AWT 创建的界面都是由 JVM 调用本地 API 实现 , 因此创建的 图形界面风格 , 都与 Java 程序运行的平台相关 , 在 Windows 系统中运行..., 显示的是 Windows 界面的风格 , 在 Linux 系统运行 , 显示的是 Linux 界面风格 ; 二、AWT 核心继承体系 ---- AWT 核心继承体系 : AWT 中最终要的两个是...中也可以使用 ; public class Container extends Component Container 容器 又有如下几个子类 : 这些容器子类也都是容器 , 都有一个 默认的 布局管理器...程序代码的编码方式是 UTF-8 格式的编码 , 而 Windows 系统使用的是 GBK 格式的编码 ; 点击 IntelliJ IDEA 中 执行选项 中的 " Edit Configurations

81110

转向Kotlin——和接口

的声明 和Java没有什么两样,Kotlin中,的声明也使用class关键字,如果只是声明一个空,Kotlin和Java没有任何区别,不过定义的其他成员,区别就很大了。...Kotlin会有一些不一样的地方,在Kotlin中,允许定义一个构造器,和若干个第二构造器。构造器是头的一部分,紧跟在名的后面,参数是可选的。如下代码定义了一个,并指定了一个构造器。...Java不支持,但Kotlin是支持的,先看个例子: class Class(param: Int, param1: String = "js") { } 在创建Class对象时,可以只第一个参数,第二个参数可以不...参数显示地"www.baidu.com"。...的继承 1、如何继承 与Java不同,Kotlin的继承需要使用冒号(:),而Java使用extends。注意,冒号后面需要调用父的构造器。

89530

java的方法和函数(三)

值传递是指参数的值复制一份传递给方法,方法中对参数值的修改不会影响原来的变量值。引用传递是指参数的引用复制一份传递给方法,方法中对引用所指向的对象的修改会影响原来的对象。...在方法中,我们分别调用这两个方法,并输出变量的值。由于Java采用的是值传递方式,所以在调用“modifyValue”方法时,虽然在方法中将参数值修改为2,但是原来的变量x的值仍然是1。...方法重写 在Java中,方法重写(override)是指子类重写父的方法,使得子类可以用自己的方法来实现相同的功能。方法重写可以提高代码的复用性和可读性。...子类方法抛出的异常类型必须与父方法抛出的异常类型相同或者是其子类型。 子类方法不能重写父方法的final修饰符。...这表明,当一个对象被声明为父类型,但实际引用的是子类对象时,调用重写的方法时会调用子类的方法。

31420

设计模式之你低估了的面向对象编程

(struct User) 面向对象编程 「Java语言实现的面向对象编程风格」 // 实体 public class User { private String name; private...一个是实体,一个用户文件解析,一个。...在面向对象编程中,我们常借助编程语言提供的接口(比如 Java 中的 interface 关键字语法)或者抽象(比如 Java 中的 abstract 关键字语法)这两种语法机制,来实现抽象这一特性...假如两个有一些相同的属性和方法,我们就可以这些相同的部分,抽取到父中,让两个子类继承父。这样,两个子类就可以重用父中的代码,避免代码重复写多遍。...网上最多的栗子是通过继承的方式,子类继承父,重写父方法,然后父引用指向子类对象,执行时实际上运行子类的实现,达到一个同一个方法在执行时候表现出来不同的形态的效果,巧妙的子类替换成了父

26830

《面试季》经典面试题(二)

(二): 无状态登陆   定义:微服务集群中的每个服务,对外提供的都使用Restful风格的接口,RestFul风格的一个最重要的规范,服务的无状态性即:服务端不保存任何客户端请求者信息,客户端的每次请求必须具备自描述信息...特性:   1、委派(delegation):子类加载器委派给父加载器加载;   2、可见性(visibility):子类加载器可访问父加载器加载的,父不能访问子类加载器加载的;   3、唯一性...被修饰的方法和变量可以直接通过名进行访问。父的静态方法可以被子类的静态方法覆盖。...十九:为什么被Static修饰的方法和属性可以直接通过名访问   是保存在字节码文件中的,JAVA中的加载是指通过I/O流的字节码文件加载到JVM中。..., 以便在表单提交时sessionID传递给服务器 二十九:Session集群化时如何保持一致 1、Session复制:    一台服务器上的Session复制到集群中的其他机器上。

32010
领券