方法的重写

1:方法的重写:overriding

使用:当父类中的方法不能满足子类的需要

方法的重写又称方法的覆盖,一般用于子类根据需要可以对父类中的方法进行重新编写

重写的前提是:必须在继承体系下,也就是必须存在继承关系

重载的前提是:同一个类中

1:方法重写的原则

1、方法名必须相同

2、参数列表必须相同

3、返回值类型相同或者是其子类

4、访问权限相同或不能严于父类

注意:

一般不会去改变返回值和访问权限

父类的私有方法不能被重写,重写的是可以被继承的方法

一般情况下,重写都是会存在一模一样的方法仅仅是方法体不一样。

只能重写继承来的方法

2:方法重写和重载的区别

3:多态

1:什么是多态

Pet p = new Dog(); // p 就是引用变量

在java中多态的体现? --- 》 所谓多态,就是指一个引用变量在不同的情况下的多种表现状态。也可以理解为,多态是指通过指向父类的引用变量,来调用在不同子类中实现的方法。

注意:方法重写是实现多态的基础

2:多态的运用

一般用于继承体系下,子类重写父类的某个方法,调用时根据具体的子类实现去调用子类的方法

3:抽象方法介绍

如果父类中有一个方法,每一个子类都有不同的实现,此时可以将这个方法声明为抽象方法,抽象方法是没有方法体的,只是一种规范。

Pet类中的toHospital() 方法不需要具体的实现,而且实现后没有任何意义,此时可以将Pet类中的toHospital()声明为抽象方法;

什么是抽象方法:被abstract修饰的方法,就是抽象方法。

抽象类为什么不能实例化

抽象类中是否可以存在构造方法?

抽象类和抽象方法的关系?

抽象类能不能继承普通类?

普通类能不能继承抽象类

抽象方法和普通方法的的区别!

语法:方法体,调用

特征:

1:抽象方法没有方法体,只有方法的声明;

2:如果一个类中存在抽象方法,那么这个类必须声明为抽象类;abstact修饰的类,抽象类不能创建对象

3:抽象类不能被实例化;

4:抽象方法必须在子类中被重写,除非子类也是抽象类;

 

重载:同类同名不同参,与其他无关(同一个类中,方法名,参数列表不同--个数不同,类型不同,顺序不同)

重写:在子类和父类中存在,同名同参同返回值同访问修饰符的方法(返回值可以是其子类,访问修饰符不能比父类更严格)

简单来说就是一模一样。

 

posted @ 2021-12-03 15:36  崇烨蒙  阅读(785)  评论(0)    收藏  举报