当前位置:首页 » 编程语言 » java重写类

java重写类

发布时间: 2022-11-27 23:55:50

java中重写和重构二者的定义和区别

我晕,楼上,重构可不是“重载构造函数”的简写。软件重构和重写压根不是一个层次上的东西!软件重构是说程序员为了对 已有程序 在尽量不改变接口的前提下 进行如下处理 而做的 重新编写代码的工作1、去除bug2、提高效率3、增加新的功能等等。而方法重写只是大多数面向对象语言提供的一种机制,目的主要是帮助实现“多态”。许多时候java代码的重构确实利用了java的方法重写机制,但是你要理解它们根本不是同一层次上的东西。 重构:站在软件整体设计思想的高度,改变软件内部结构达到提高效率,增加功能,去除bug等工作。方法重写:仅仅是java的一种语言机制,它和继承,超类可以引用子类等机制一同实现“多态”。

Ⅱ java重写类implements是重写里面所有的方法吗

补充楼上的...
implements
接口
abstract方法是不可以直接使用的..你必须重写他.
如例所示,你可以在DBCatEvent类中重写ActionListener里面存在的abstract方法,当然你也可以自定义ActionListener中不存在的方法.
extends是继承,你只能继承于一个父类,你可以直接使用父类里的方法..当然你也可以重写他..或者你自定义父类里不存在的方法.

Ⅲ java中重载和重写的区别

重写是子类覆盖父类的方法,而重载是同一个类中方法名称相同而参数个数或参数类型不同。一个是子类对于父类,而另一个是指在同一个类中

Ⅳ 关于JAVA继承重写的问题

你没有弄明白什么叫做重写。你子类中的方法why(int/float)和父类的方法why()是两个不同的方法,子类中的why(int/float)方法并不是从父类继承得到的。
Java编译器判断两个方法相同的根据是两个:方法名和参数列表,并不包括返回值。当这两点都一样时,就认为这两个方法一样,所以当你把子类中的why(int/float)方法参数去掉,那么编译器就认为这个方法是从父类中继承来的(因为方法名和参数与父类的一样),应当是同一个方法,但是返回值却和父类的不一样,所以会报编译错误。
重载就是说一个类中有多个方法的方法名一样,但是参数列表不一样。
重写就是说将父类的方法体的实现在子类中重新编写。重写时,方法原型并不会和父类中的有差异。

Ⅳ java重写已定义好的类中的方法

java中重写已定义好的类中的方法,只需要定义一个类继承该类,然后在子类中写出一个与该方法的返回值、名字、参数列表全部一致,但是函数内容不同即可完成重写操作。在java中有重载和覆盖(即重写)两个概念,重载是在同一个类中,方法名相同,参数列表或者参数个数与参数顺序不一致即可重载;而覆盖是在子父类中,子类的方法与父类的方法完全一致,但是方法内容不同叫做覆盖也叫重写。

Ⅵ JAVA中子类重写父类的方法,怎么写,什么要求

1.父类的方法不能降级,同级的话就要覆盖,例如public方法不能在子类中被声明为protected或者private(子类重载除外),否则会有

Cannot rece the visibility of the inherited method from Father的编译错误。

2.父类的方法可以任意升级,但升级只有两种方式,要么覆盖,要么重载,覆盖就是方法体完全一样,重载则是参数必须改变,方法名称不变。


importjava.lang.reflect.Method;

classFather{
inta;
protectedintb=5;
protectedvoidfuncpro(){
//父类的保护方法,子类能够访问,但子类自身没有
System.out.println("fatherfuncpro");
}
publicvoidfuncpub(){
//父类公有方法,子类直接继承
}
privatevoidfuncpri(){
//父类私有方法,子类不可见
}
}
{

/**
*@paramargs
*/
//父类保护方法的重写
//publicvoidfuncpro(){
////子类自己可以这样定义,将会覆盖父类protected方法
//System.out.println("子类的func方法");
//}

//protectedvoidfuncpro(){
////ok
//}

//publicshortfuncpro(){
////illegal父类的protected和public方法在子类中是可见的,试想一下,如果编译器认为这个方法体正确,
//那么子类调用funcpro的时候究竟调用哪个呢?这样没有能构成重载
//}

//privatevoidfuncpro(){
////illegal
//}

privatevoidfuncpro(inta){
//这是方法重载,不会报错
System.out.println("sunfuncpro");
}

//父类公有方法的重写

//privatevoidfuncpub(){
////illegal:
//}

//protectedvoidfuncpub(){
////illegal
//}

//publicvoidfuncpub(){
////ok
//}

//publicintfuncpub(){
////illegal和父类的返回值不匹配
//}

//publicintfuncpub(inti){
////ok子类构成重载
//return1;
//}

//父类私有方法的重写

//publicvoidfuncpri(){
////ok
//}

//protectedvoidfuncpri(){
////ok
//}

//privatevoidfuncpri(){
////ok
//}

publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
TestOveridetestOveride=newTestOveride();
Classclass1=testOveride.getClass();
try{
Method[]methods=class1.getMethods();
System.out.println("子类中的所有方法:");//可以看到,并没有父类的funcpro方法
for(Methodm:methods){
System.out.println(m);
}
System.out.println("子类调用父类的protected方法:");
testOveride.funcpro();
System.out.println("子类调用自己的func方法:");
testOveride.funcpro(1);
System.out.println("子类调用父类的字段");
System.out.println(testOveride.b);
}catch(Exceptione){
e.printStackTrace();
}

}

}

Ⅶ java的子类如何重写父类的方法

java中重写父类的方法只需写出与父类一模一样的这个方法即可,包括方法名,参数类型,参数值,返回值。
事例代码如下:
public class Demo extends FDemo{
public static void main(String[] args) {
a();//运行输出b
}
static void a(){
System.out.println("b");
}
}
class FDemo{
static void a(){
System.out.println("a");
}
}
java重写父类方法后,原有的父类里面的实现全部清空,变为重写后的内容。

Ⅷ 在Java里一个类中重写另一个类怎么弄啊

首先,你这个说法就是不正确的,不能重写一个类,只能重写一个类中的某些方法。要用到继承,用你当前类继承另一个类,然后在你当前类中定义一个跟你想要重写的方法同名且参数也相同的方法,然后在方法中写入自己的逻辑,这叫做方法的重写。(如有错误,请纠正!谢谢!)

热点内容
二级程序编译答案 发布:2024-05-03 18:41:35 浏览:653
领动自动精英版是哪个配置 发布:2024-05-03 18:37:30 浏览:150
java编译器中cd什么意思 发布:2024-05-03 18:36:00 浏览:389
传奇服务器如何刷钱 发布:2024-05-03 18:36:00 浏览:977
安卓版twitter怎么注册 发布:2024-05-03 18:28:05 浏览:893
Python逻辑优先级 发布:2024-05-03 18:26:14 浏览:267
linux查看svn密码 发布:2024-05-03 18:12:47 浏览:804
地铁逃生怎么进入游戏安卓 发布:2024-05-03 17:49:35 浏览:992
aws云存储 发布:2024-05-03 17:48:50 浏览:955
安卓微信王者号怎么转成苹果 发布:2024-05-03 17:44:38 浏览:745