object和常用类
1.object表示对象类,Java中的根类.
2.所有类都是object子类,所有类都可以调用object类中的方法.
3.在object类中的equals方法和==都是比较对象是否是同一个存储地址.
4.每个类都应该覆盖equals方法去比较我们关心的数据,而不是内存地址
== 符号到底比较的是什么:
比较基本数据类型:比较两个值是否相等
比较对象数据类型:比较两个对象是否是同一块内存空间
接口
接口是一种特殊的类,定义类时用class关键字.定义接口用interface关键字
类是单继承,接口也可以继承接口,但是可以多继承.
接口和抽象一样.不能创建对象,必须定义一个类去实现接口,且要覆盖接口中的方法
这个类称为实现类,类与接口之间的关系称之为实现类关系
多态
面向对象三大特征 :封装继承多态
多态:一个对象具有多种形态
多态可以是继承关系(类与类)也可以是实现关系(接口和实现类)
父类引用变量指向与子类变量,调用方法时实际调用的是子类的方法
多态调用关系
Animal a =new Cat();
a.shout
类型转换和instanceof运算符
自动类型转换提升:把子类对象赋给父类变量(多态)
Animal a =new Cat();object obj =new Cat();
强制类型转换:把父类类型对象赋给子类类型变量(是要该对象的真实子类类型)
Animal a =new Cat(); Cat a =(Cat) a;
instanceof 运算符
Boolean b =对象a instanceof 类b
多态的好处
面向接口编程,体现的就是多态,把实现类的对象赋给接口类型变量,屏蔽了不同实现类之间的实现差异,从而做到通用编程.