首页编程java编程java 什么是隐藏?java中 什么是隐藏什么是重写二者有何区别

java 什么是隐藏?java中 什么是隐藏什么是重写二者有何区别

编程之家2023-10-1389次浏览

大家好,如果您还对java 什么是隐藏不太了解,没有关系,今天就由本站为大家分享java 什么是隐藏的知识,包括java中 什么是隐藏什么是重写二者有何区别的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

java 什么是隐藏?java中 什么是隐藏什么是重写二者有何区别

Java 隐藏和覆盖间的区别

在JAVA中所谓隐藏,是指运行时系统调用当前对象引用的编译时类型中定义的方法;也就是子类重写父类的方法,要求方法名和参数类型完全一样(参数不能是子类),返回值和异常比父类小或者相同(即为父类的子类),访问修饰符比父类大或者相同

所谓覆盖,则指运行时系统调用当前对象引用运行时类型中定义的方法。也就是父类和子类拥有相同名字的属性或者方法时,父类的同名的属性或者方法形式上不见了,实际是还是存在的

两者的区别主要在于:

java 什么是隐藏?java中 什么是隐藏什么是重写二者有何区别

被隐藏的属性,在子类被强制转换成父类后,访问的是父类中的属性

被覆盖的方法,在子类被强制转换成父类后,调用的还是子类自身的方法

在使用隐藏和覆盖的时候主要注意以下几点:

java 什么是隐藏?java中 什么是隐藏什么是重写二者有何区别

一、父类的实例变量和类变量能被子类的同名变量隐藏。

二、父类的静态方法被子类的同名静态方法隐藏,父类的实例方法被子类的同名实例方法覆盖。

三、不能用子类的静态方法隐藏父类的实例方法,也不能用子类的实例方法覆盖父类的静态方法,否则编译器会异常。

四、用final关键字修饰的最终方法不能被覆盖。

五、变量只能被隐藏不会被覆盖,子类的实例变量可以隐藏父类的类变量,子类的类变量也可以隐藏父类的实例变量。

java中 什么是隐藏什么是重写二者有何区别

隐藏是指当父类和子类有相同名字的属性的时候,父类的同名变量形式上不可见了。但是实际还是存在的。

譬如A有int变量a= 10,父类B有变量a= 5;

当B b= new A()得时候,若用b.a那么父类的5就被隐藏了,此时b.a=子类的10。在子类里面访问super.a得时候只能得到子类的值

重写是针对方法的,通常是父类的方法在子类中重新写过。当执行子类的实例得时候,实际运行的是子类的方法。在子类里面可以通过super.method()来显式的访问。

java中隐藏域是什么

隐藏域是用来收集或发送信息的不可见元素,对于网页的访问者来说,隐藏域是看不见的。当表单被提交时,隐藏域就会将信息用设置时定义的名称和值发送到服务器上。

Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

如何理解Java中的隐藏与覆盖

隐藏与覆盖类方法

在讲清这个问题之前,先明白什么是隐藏?什么是覆盖?

所谓隐藏,是指运行时系统调用当前对象引用的编译时类型中定义的方法;对于覆盖,则指运行时系统调用当前对象引用运行时类型中定义的方法。

所以在执行Student1

s

=

new

Graduate1();和Graduate1

g

=

new

Graduate1();时,(1)先进行Student1类的构造,这里包括两个方法study()和exercise(),由于study()方法被覆盖,所以先执行Graduate1里study(),再执行Student1里的exercise();(2)再进行Graduate1类的构造,同样包括两个方法study()和exercise(),所以执行顺序为先Graduate1里的study()方法,再Graduate1里的exercise()方法。

2.

隐藏与覆盖成员变量

如果子类中的变量和父类中的变量具有相同的名字,那么子类中的变量就会隐藏父类中的变量,不管他们的类型是什么,也不管他们是类变量还是实例变量。

所以在执行诸如System.out.print(s.math);之类的s实例的程序时,显示为Student1类的成员变量,而执行诸如System.out.print(g.math);之类的g实例的程序时,显示为Graduate1类的成员变量。

文章分享结束,java 什么是隐藏和java中 什么是隐藏什么是重写二者有何区别的答案你都知道了吗?欢迎再次光临本站哦!

java接口中的方法被默认是什么修饰的 java默认方法的修饰符是什么java什么样的数据需要缓存(学java最重要的是学java的什么内容)