面向对象的三种基本特征:数据抽象(封装)、继承、多态
重载:定义:在同一个类中,方法名称相同,但每个重载方法都有唯一的参数类型列表。 可以是不同的类型,可以是不同的参数个数,也可以是同一类型的不同顺序。 但是,无法通过返回值来区分重载方法。
void f () {}int f ) ) return1) f ); //哪个f ) ),所以无法通过返回值来区分重载方法的覆盖:条件:继承基类。
定义:覆盖是指导类重写与基类相同的方法,并扩展与基类同名的方法以获得自己想要的特定方法的内容。 如果导出类具有同名的重载方法,则可以通过添加标记@override来声明它是覆盖而不是重载。
多态性:条件:
1、继承基类。
2、重写。
3、父类引用指向子类对象。
定义:
1、多态性是一种允许您将父对象设置为一个或多个其他子对象的技术(可以理解为向上转型)。
2、在多态方法调用中,一个类型可以表达与其他相似类型的差异。 但是,只要它们都是从同一个基类派生的。
——向上转型
3、同一消息发送根据对象的不同可以采取不同的行为方式。
作用:多态性的作用是消除类型间的结合关系
内容:
1、Java所有方法(静态和final除外)都通过动态绑定实现多态性
2、多态性是程序员“隔离变与不变”的关键技术
3、private方法自动识别为final方法,不能被导出类屏蔽、复盖或重载。
4、域用编译器解析
5、构造函数不是多态性的(实际上,它们是静态方法,声明为隐式的) )。
优点:
1、改善代码的组织结构和可读性
2、编写可扩展程序
class Instrument{ public void play () (system.out.println('thisisplay ) ) ); } classwindextendsinstrument { public void play () system.out.println(thisisplay ) of Wind ' ); } public class test { publicstaticvoidmain (string [ ] args ) { Instrument i=new Wind ); //Upcasting i.play (; }} Output:This is play () of Wind