预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共28页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

上季内容回顾: 1、final关键字·修饰类不能被继承·修饰方法不能被覆写·修饰的变量就是一个常量,全局常量(publicstaticfinal)2、抽象类和接口·抽象类:只包含一个抽象方法的类,抽象方法只需声明而不需要实现,必须有子类·接口:只包含抽象方法和全局常量的类——接口,也是必须有子类 在实际中一个类很少会去继承一个已经完全实现好的类,基本上都是继承抽象类和实现接口。 本季主要知识点: 1、对象的多态性2、instanceof关键字3、Object类 对象的多态性 注意点:为了清楚的阐述出概念,现在先使用普通类的继承关系。 向上转型: classA{publicvoidfun1(){System.out.println("A类===>publicvoidfun1()");}publicvoidfun2(){//fun2方法调用的是fun1方法this.fun1();}}classBextendsA{//覆写A类中的fun1()方法publicvoidfun1(){System.out.println("B类===>publicvoidfun1()");}publicvoidfun3(){System.out.println("B类===>publicvoidfun3()");}}publicclassDemo01{publicstaticvoidmain(Stringargs[]){Bb=newB();Aa=newA();b.fun1();a.fun2();b.fun3();}} 对象多态性体现在对象相互转型上面哈~ classA{publicvoidfun1(){System.out.println("A类===>publicvoidfun1()");}publicvoidfun2(){//fun2方法调用的是fun1方法this.fun1();}}classBextendsA{//覆写A类中的fun1()方法publicvoidfun1(){System.out.println("B类===>publicvoidfun1()");}publicvoidfun3(){System.out.println("B类===>publicvoidfun3()");}}publicclassDemo02{publicstaticvoidmain(Stringargs[]){//声明一个父类对象Aa=null;//newB()是子类对象向父类对象转换a=newB();a.fun1();}} 现在我们来看下a.fun1()调用的是哪个类的方法哈~ classA{publicvoidfun1(){System.out.println("A类===>publicvoidfun1()");}publicvoidfun2(){//fun2方法调用的是fun1方法this.fun1();}}classBextendsA{//覆写A类中的fun1()方法publicvoidfun1(){System.out.println("B类===>publicvoidfun1()");}publicvoidfun3(){System.out.println("B类===>publicvoidfun3()");}}publicclassDemo02{publicstaticvoidmain(Stringargs[]){//声明一个父类对象Aa=null;//newB()是子类对象向父类对象转换//子类对象向父类对象转型之后,所调用的方法一定是被覆写过的方法a=newB();a.fun1();a.fun2();}} 子类对象向父类对象转型之后,所调用的方法一定是被覆写过的方法,这就是对象的向上转型哈~ 向下转型: classA{publicvoidfun1(){System.out.println("A类===>publicvoidfun1()");}publicvoidfun2(){//fun2方法调用的是fun1方法this.fun1();}}classBextendsA{//覆写A类中的fun1()方法publicvoidfun1(){System.out.println("B类===>publicvoidfun1()");}publicvoidfun3(){System.out.println("B类===>publicvoidfun3()");}}publicclassDemo03{publicstaticvoidmain(Stringargs[]){//声明一个父类对象Aa=null;//newB()是子类对象向父类对象转换//子类对象向父类对象转型之后,所调用的方法一定是被覆写过的方法a=newB();a.fun1();a.fun2