j***a语言编程重写,j***a 重写

kodinid 13 0

大家好,今天小编关注到一个意思的话题,就是关于java语言编程重写问题,于是小编就整理了4个相关介绍Java语言编程重写的解答,让我们一起看看吧。

  1. JAVA子类重写继承的方法时,可以降低方法的访问权限吗?
  2. 子类可以重写父类的字符串和数组吗?
  3. java中paint()的具体用法?
  4. 不同时重写equals和hashCode又会怎样?

JAVA子类重写继承方法时,可以降低方法的访问权限吗?

j***a中四种访问权限private<default<protected<public如果子去重写父的方法,方法的权限默认是和父一样的,但也可以改,但只能加大权限,不能缩小权限,比如父是protected,重写时可以改成public,但如果是public的,重写只能是public

子类可以重写父类的字符串数组吗?

面向对象编程中,子类可以重写父类的字符串和数组。这意味着子类可以定义自己的字符串和数组方法,它们将覆盖父类中的相应方法。重写使得子类能够根据自身的需求定制化地使用字符串和数组。在J***a、Python等面向对象编程语言中,子类可以继承父类的字符串和数组方法,并且可以在需要时重写它们。

java语言编程重写,java 重写-第1张图片-安济编程网
图片来源网络,侵删)

j***a中paint()的具体用法?

1、这个方法需要注意的地方不多,也就是重写时,先调用super.paint(g)方法。paint方法不需要编写代码调用,只需要重写。

2、paint。publicvoidpaint(Graphicsg)绘制容器。该方法将paint转发给任意一个此容器子组件的轻量级组件。如果重新实现此方法,那么应该调用super.paint(g)方法,从而可以正确地呈现轻量级组件。如果通过g中的当前剪切设置完全剪切某个子组件,则不会将paint()转发给这个子组件。

3、调用paint的一般是repaint()或当显示器刷新的时候调用的类似repaint()的类。当对于桌面了某类操作,改变了桌面上的图象时,jvm收到界面调整信息,此时会调用visible是ture的图形组件的repaint()方法对界面重绘。

java语言编程重写,java 重写-第2张图片-安济编程网
(图片来源网络,侵删)

4、当然,直接重绘或全部重绘是很亏的,一个是用双缓存技术,另一个是只对桌面上显示的部分重绘。双缓存是指在缓存内先模拟重绘过程,只把最后成形的结果传给显示器显示。

不同时重写equals和hashCode又会怎样?

如果问到 == 和 equals 的区别,相信很多程序员同学都能脱口而出:一个是判断地址,一个是判断内容

但是如果继续追问:“你重写过 equals 么?”,“重写 equals 方法的时候,必须重写 hashCode 方法么?”,“不同时重写equals和hashCode又会怎样?”

java语言编程重写,java 重写-第3张图片-安济编程网
(图片来源网络,侵删)

你还能信心满满地回答上来么?

1. ==

如果比较的是两个基本数据类型,那么 == 比较的是值;如果是两个非基本数据类型的对象,那就是判断它们的内存地址是不是相同;

2. equals

让我们看看 String 中的 equals 方法是什么样的:

我们可以看到 String 的比较,是先比较内存地址,如果两个字符串指向的地址不一样,那么再比较两个字符串的值。

1) 搞清楚 == 和 equals的区别

一般情况下==用来比较基础数据类型,而equals用了比较对象,如:

int a;

String s;

if(a==1)…

if(s.equals("ok"))…

2) equals到底比较的是啥

equals这个方法是从Object这个类继承来的,在Object这个类里实际也是用==来比较的,只不过这里比较的是对象内存的地址。

我们比较两个对象是否一致,肯定不是看它们内存地址是否一样,一般是关注对象的属性是否一致,这也就是为啥要你重写equals方法的原因。

3) hashCode是干嘛的?

equals的比较规则是比较2个对象的内存地址,而hashcode是根据对象的内存地址经哈希算法得来的。***如只重写equals而不重写hashcode,那么hashcode方法就是Object默认的hashcode方法,由于默认的hashcode方法是根据对象的内存地址经哈希算法得来的,显然此时s1!=s2,故两者的hashcode不一定相等。但是由于equals已经重写,实际返回的是true,这就与hashcode的规则矛盾了,因此equals重写要重写hashcode。

hashcode的一些规定

两个对象相等,hashcode一定相等

两个对象不等,hashcode不一定不等

hashcode相等,两个对象不一定相等

hashcode不等,两个对象一定不等

到此,以上就是小编对于j***a语言编程重写的问题就介绍到这了,希望介绍关于j***a语言编程重写的4点解答对大家有用。

标签: 重写 方法 hashCode

上一个c语言习题与答案,c语言试题答案

下一个java开发语言排行,java开发语言的排名