一、接口
1.概念
接口是功能的集合,是比抽象类更抽象的类
2.定义(Interface关键字)
public interface name {
抽象方法1;
抽象方法2;
抽象方法3;
};
3.特点:
1)接口中的方法均为公开访问的抽象方法
2)接口中无法定义普通的成员变量,只能定义静态常量 public static final
3)类与接口的关系为:类实现了接口,使用implements关键字
4)实现接口的类,需要重写所有接口方法,然后才能进行实例化。否则子类是一个抽象类
5)接口不可以创建对象
4.优点:
1)接口是可以多实现的:这样就避免了多继承问题(多继承时,子类不确定使用哪个父类的特定方法,而多实现接口就可以,因为接口中根本就没有方法体)
2)接口的出现,打破了单继承的局限性
3)接口的出现,拓展了功能
4)接口其实就是暴露出来的规则
二、多态
1.定义:
父类的引用变量可以指向子类的对象,既一种物质的多种形态
2.前提:
必须具有子父类关系或者具有接口继承关系
3.格式:
父类类型 name = new 子类类型();
4.注意事项:
1)子类如果重写了父类的方法,当子类调用方法的时候,调用的是子类重写之后的方法;
2)fu f = new zi(); 对于这样的多态调用,变量调用父类的,方法则调用子类的方法
5.多态转型
1)向上转型:
Person p = new Student();
2) 向下转型:
当一个已经向上转型过的变量,那么这个变量是可以通过强制转换变成子类的引用,这个过程就是向下转型:Student s = (Student) p;
3)什么时候使用向上转型:
当变量不固定(可以是子类1,可以是子类2等),而且不需要面对子类类型,使用父类就能完成相应的操作,这种情况,使用向上转型
4)什么时候使用向下转型:
当已经向上转型的变量又想使用子类特有功能的时候,可以向下转型(强转)
6.优缺点:
1)优:可以将子类类型转换成父类的类型,隐藏了子类的类型,提高了代码的拓展性
2)缺:多态调用,只能使用父类的共性内容,无法使用子类的特有功能
三、instanceof关键字
1.定义:
用来判断某个对象是否属于某种数据类型
2.格式:
boolean b = 对象 instanceof 数据类型;