在java中 this和super的区别有:1、属性的区别;2、方法的区别;3、构造的区别;4、其他区别。属性的区别是指this访问本类中的属性,如果本类没有这个属性则访问父类中的属性。super访问父类中的属性。
1、属性的区别
this访问本类中的属性,如果本类没有这个属性则访问父类中的属性。
super访问父类中的属性。
在对拥有父类的子类进行初始化时,父类的构造方法也会执行,且优先于子类的构造函数执行;因为每一个子类的构造函数中的名列前茅行都有一条默认的隐式语句super();
2、方法的区别
this访问本类中的方法,如果本类没有这个方法则访问父类中的方法。
super访问父类中的方法。
this()语句调用的是当前类的另一个构造函数而这个另一个构造函数中必然有一个父类的构造器,再使用super()又调用一次父类的构造器, 就相当于调用了两次父类的构造器,编译器不会通过。
3、构造的区别
this调用本类构造构造,必须放在构造方法的首行。
super调用父类构造,必须放在子类构造方法首行。
this() 和super()都只能写在构造函数的名列前茅行;this() 和super() 不能存在于同一个构造函数中。
4、其他区别
this表示当前对象。super不能表示当前对象。this和super不能用于static修饰的变量,方法,代码块;因为this和super都是指的是对象(实例)。
延伸阅读:
什么是JAVA?
Java programming language具有大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的”形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种”以对象为导向”的方式。使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。
Java是Sun微系统公司在1995年推出的,推出之后马上给互联网的交互式应用带来了新面貌。最常用的两种互联网浏览器软件中都包括一个Java虚拟机。几乎所有的操作系统中都增添了Java编译程序。
使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。
文章标题:在java中 this和super的区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37341