「java的继承与重写」java继承后重写
今天给各位分享java的继承与重写的知识,其中也会对java继承后重写进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
关于JAVA继承重写的问题
你没有弄明白什么叫做重写。你子类中的方法why(int/float)和父类的方法why()是两个不同的方法,子类中的why(int/float)方法并不是从父类继承得到的。
Java编译器判断两个方法相同的根据是两个:方法名和参数列表,并不包括返回值。当这两点都一样时,就认为这两个方法一样,所以当你把子类中的why(int/float)方法参数去掉,那么编译器就认为这个方法是从父类中继承来的(因为方法名和参数与父类的一样),应当是同一个方法,但是返回值却和父类的不一样,所以会报编译错误。
重载就是说一个类中有多个方法的方法名一样,但是参数列表不一样。
重写就是说将父类的方法体的实现在子类中重新编写。重写时,方法原型并不会和父类中的有差异。
java语言中的重写、重载、继承?
重写重载发生在函数上,继承发生在类上!
重写在继承的基础之上;
重载与重写都是函数的特性,
重载只看参数列表,重写要看函数所有:(权限,返回值类型,函数名必须一样,参数类型与个数必须一样);
我给你通俗点打比方,可能不是很恰当,只希望明白就好!
//先说重载!
class 小明
{
/*小明会射击至于哪种类型的武器代表参数*/
//方法1
void 射击(int 弓)
{
}
//方法2
void 射击(String 枪)
{
}
//方法3
void 射击(String 枪,int 弓)
{
}
/*方法名都一样,只是参数列表不一样*/
}
/*----------------------说说继承!-----------------------------------*/
class 小明爹
{
//方法1
void 射击(int 弓)
{
}
}
class 小明 extends 小明爹
{
//这里什么都没定义!
//什么都没有的情况下,小明就有他爹的射击这个方法了!
}
/*--------------------------重写-----------------------------*/
class 小明爹
{
//方法1
void 射击(int 弓)
{
蛙泳式;
}
}
class 小明 extends 小明爹
{
//小明觉得他爹的射击姿势很不给力,他决定覆盖他爹的方法,也称为重写!
void 射击(int 弓)
{
狗刨式;
}
}
//如果实例化小明以后,调用这个射击的动作就是小明自己的了,明白吗?
//当然其实也能调用他爹的,这个需要他爹内部对外提供一个方法即可!
//默认实例化完以后,在调用射击这个方法,就是小明的狗刨式了!
比喻不是很恰当,只希望你能明白!和你一样,我也是初学者!基础部分很关键!
java中重载,继承,重写和多态的区别
(1)方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。
(2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具
有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型
来决定具体使用哪个方法, 这就是多态性。
(3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。
然后我们再来谈谈 重写(Overriding)
(1)父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某
方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
(2)若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,
则新方法将覆盖原有的方法。如需父类中原有的方法,可使用super关键字,该关键 字引用了当前类的父类。
(3)子类函数的访问修饰权限不能少于父类的;
java中关于方法的继承和重写
对,这样就是重写了,这是JAVA的特性之一
父类中的abstract是抽象的,所以其方法内没有代码,也没有{}
而作为子类,继承这种有抽象方法的父类时,必须实例化该抽象方法
java的继承与重写的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java继承后重写、java的继承与重写的信息别忘了在本站进行查找喔。
发布于:2022-12-26,除非注明,否则均为
原创文章,转载请注明出处。