
正文
Java覆写代码 java覆写和重载
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java中 什么是方法的覆写?方法的覆写使用时需要注意哪些事项?
方法的覆写,也称为重写,是面向对象编程时在继承时要用的一项技术。
简单来说,就是在子类中写一个与父类中同名同参的方法,称之为覆盖(也即覆写),可以是对父类方法的补充,也可以写与父类方法完全不同的实现。
覆写的方法与普通方法相比,没有需要特别注意的地方。
相关问答
Q1: java覆写与重载问题
重载,在一个类Java覆写代码的内部,如果有一个方法名为test,Java覆写代码你重新写一个方法,这个方法Java覆写代码的名字也叫test,但是两个方法的参数不同.
也就是说,重载指的是在一个类的内部有两个或多个名字相同但参数不同的方法.
覆写,也叫覆盖或重写.如果一个父类有一个方法名为test,在Java覆写代码他的子类里也写一个方法名字也是test,两个方法返回类型和参数都相同,但是方法体不同.
也就是说,覆写指的是不同的类中(父类方法,子类覆写)有两个或多个返回类型,方法名,参数都相同,但是方法体不同的方法
另外,超载指的是覆盖,也就是覆写.过载则和重载同一概念
Q2: java中方法的覆写和重写是否一样?
“覆写”和“重写”是一样的,还有叫“覆盖”的,都是override,意思就是父类和子类中的同名同参数的方法,它们之间的关系就是,子类的方法把父类的方法给盖住了(其实不一定是父类,父接口也可以)。
比如动物是父类,人是子类,都有奔跑run()这个方法,人类能够不用四肢在地上奔跑,所以应该重写run()这个方法,让人类直立行走啊!
注意要和另一种区分的就是“重载”,即overload,这是同一个类中同名不同参的方法,它们之间的关系就是,你调用同一个名字,但是传递的是不同的参数,
比如求和sum方法,可以对int类型求和,也可以对double类型求和,这两个方法作用相同,所以起同样的名字。因此sum(int int)和sum(double, double)就是两个重载方法。
Q3: 初学者求问覆写与否的方法调用问题
1。执行一个函数的时候Java覆写代码,得先找到这个函数才能执行啊Java覆写代码,找这个函数有个顺序,先在本类找,再在父类找--再在父类的父类中找,一直找到Object类,找不到则编译错误。
你是通过Person类的fun函数来调print函数,所以是在Person类中找fun函数。
2.你只要记住子类如果想覆盖父类的方法,父类的要被覆盖的方法不能是private的,否则无法覆盖(就像你让Java覆写代码我帮你改作文,结果你不把你的作文本给我,我怎么重写Java覆写代码?)。那什么是覆盖呢,覆盖又叫做重写,即你把父类的方法重写Java覆写代码了,父类的方法实际变成了你重写后的方法。
那么答案来了,
1.你如果Person类的print是private的,那子类无法覆盖它。你在父类的fun函数里面调用print,自然会在父类里面去找print啊(永远也不会到子类里去找,只会往上找),自然也就找到了没有被覆盖的父类的print
2.如果Person类的print不是private的,那么子类就覆盖了它(重写了它),你在父类的fun函数里面调用print,自然会在父类里面去找print啊(永远也不会到子类里去找,只会往上找),自然也就找到了父类的print(别晕,当它找到父类的print时,父类的print被重写了啊,跟你看到的子类中的那个一模一样啊)
另外,如果想调用父类中被覆盖的原来的方法,可以在子类中通过super来调用(记住是在子类中,你要是在父类中用super,那实际是去访问父类的父类了),像如下这样。
class Person
{
public void print()
{
System.out.println("Person");
}
}
class Student extends Person
{
public void fun()
{
super.print();
}
public void print()
{
System.out.println("Student");
}
}
Q4: 本人小白,想实现文件数据覆写,以抵抗数据恢复。请问下面这样的java代码是否实现了真正的数据覆盖?
你想最放心就是直接获取磁盘扇区信息进行覆盖咯
写个vc封装成dll再通过jni调用吧,jvm估计没法做到这么底层
比较麻烦不过有效
Java覆写代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java覆写和重载、Java覆写代码的信息别忘了在本站进行查找喔。







