一.接口:
1.接口的定义,使用关键字:interface
2.接口编译后,会生成.class文件
3.接口中可以定义什么?
1).成员变量:只能是公有、静态、常量
隐式的声明为:public static final
以上三个关键字,任何一个不写都可以,编译器会自动添加;
2).抽象方法:只能是公有、抽象的
隐式的声明为:public abstract
以上两个关键字,任何一个不写都可以,编译器会自动添加;
4.子类实现接口使用关键字:implements
子类可以同时实现多个接口;
5.接口的作用:
1).对子类功能的扩展。
2).接口多态;
6.类和类之间:继承,使用关键字extends;只能是单继承;
类和接口之间:实现;使用关键字implements;可以同时实现多个接口;
接口和接口之间:继承;使用关键字extends;可以多继承;
二.多态:
1.父类的引用指向了它的某个子类对象;
2.多态的类型转换:
1).隐式转换:(向上转型)
Animal a = new Cat();
2).强制转换:(向下转型)
Cat c = (Cat)a;
3).强转之前建议先判断:
if(a instanceof Cat){
Cat c = (Cat)a;
}
3.多态中成员的特点:
1.成员变量:编译看左边,运行看左边;
2.成员方法:编译看左边,运行看右边;
3.静态方法:编译看左边,运行看左边;
4.当实现多个接口时的多态:
interface IA{
public void fun1();
}
interface IB{
public void fun2();
}
class C implements IA,IB{
//重写(略)
}
main(){
//多态
IA a = new C();
a.fun1();//只能访问fun1()
IB b = new B();
b.fun2();//只能访问fun2();
}
5.当方法的形参和返回值是类类型,抽象类类型、接口类型时:
见Demo09--Demo10
6.多态的好处:
1.提高了程序的可维护性;
2.提高了程序的可扩展性; |
|