嗯,今天刚看到Java的重写,有点理解就赶紧记录下来,可能有些理解的不到位,还请多多指正。
说道Java的重写就得提到extends(继承),先举一个具体的例子吧,有两个类Person,Student,Student继承Person,先上代码吧
Person类
public class Person { public void test() { System.out.println("Person"); } }
Student类
public class Student extends Person{ public void test() { System.out.println("Student"); } }
main方法
public class Day02Main { public static void main(String[] args) { Person p = new Student(); Student s = new Student(); p.test(); s.test(); } }
重写就是在子类中把父类的方法重写,具体好比上图Person里有一个test方法,Student里也有一个test方法,这里就提一下main里写的第一行代码,父类实例化了子类,由于他俩是继承关系,所以有一个转换,这么写的话就会检测Student里有没有和Person里一样的方法,有的话就会重写父类Person的方法,所以这里最终输出结果是
重写也是有一些注意事项的
1.方法名必须相同
2.参数列表必须相同,不相同你直接写test() idea就给你报错,再者说参数列表不同他也不会匹配上,就会变成重载
3.子类范围可以扩大但不能缩小,举个栗子,父类是default,子类可以是default也可以是public,但不能是private
由于我是个新手啊,我想的这个重写有哪些应用场景,我觉得其中一项就是,一个父类可以被好多个类继承,调用父类的方法希望可以根据继承的子类的不同从而进行不同的处理,这里就很适合重写了吧
对了,我是“我叫胡八一”,正努力从前端转型,对IT感兴趣可以加我QQ:1627889159