欢迎来到天天文库
浏览记录
ID:33471079
大小:197.00 KB
页数:40页
时间:2018-05-25
《java程序设计ppt教学课件-第3章类的高级特性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章类的高级特性1本章导读对象上转型最终类抽象类接口抽象类与接口的比较内部类匿名类泛型类和泛型接口2本章导读对象的上转型最终类抽象类接口抽象类与接口的比较内部类匿名类泛型类和泛型接口3对象的上转型假设B是A的子类或者间接子类,用类B创建一个对象,并把这个对象的引用赋值给类A的一个引用,例如:Aa;Bb=newB();a=b;称对象a是子类对象b的上转型对象等价于Aa=newB();4上转型对象强制转换称子类对象Aa;Bb=newB();a=b;//a是b的上转型对象b=(B)a;//上转型对象强制转换成子类对象等价于Aa=newB();Bb=(B)a;5上转型对象的特点父类中被子类继承的
2、变量父类中被子类隐藏的变量父类中被子类继承的方法父类中被子类重写的方法子类中定义的覆盖变量子类中定义的重写方法子类中定义的新变量子类中定义的新方法上转型对象子类对象6上转型对象练习TestUpdast.java(p76,程序3-1)TestUpdast2.java(p77,程序3-2)Lianxi1.java7对象上转型与运行时多态如果一个类有很多子类,并且这些子类都重写了父类中的某个实例方法,把子类创建的对象的引用放到父类的对象中时,就得到了该对象的一个上转型对象,这个上转型对象在调用这个实例方法时就可能具有多态性TestBounding.java(P78,程序3-3)8本章导读对象上转
3、型最终类抽象类接口抽象类与接口的比较内部类匿名类泛型类和泛型接口9最终类(final类)final类不能被继承,即不能有子类finalclassA{……}A称为最终类被final修饰的成员方法不能被重写10本章导读对象上转型最终类抽象类接口抽象类与接口的比较内部类匿名类泛型类和泛型接口11抽象类(abstract类)abstractclassA{abstractintmin(intx,inty);intmax(intx,inty){returnx>y?x:y;}}抽象类抽象方法12抽象类的特点定义抽象类的目的是为其他的类创建一个公共的模板,让其他的类对其进行继承(1)抽象类不能用运算符ne
4、w创建对象如果要创建对象,必须产生其子类,由子类创建对象(2)抽象类中可以有抽象方法和普通方法抽象方法用abstract修饰,只允许声明,不允许实现13抽象类的特点(3)如果一个类中含有抽象方法,那么这个类一定是抽象类(4)如果一个非抽象类是一个抽象类的子类,它必须具体实现父类的所有抽象方法在子类中要将方法前面的abstract去掉(5)如果一个抽象类是另一个抽象类的子类,则子类可以实现父类的抽象方法,也可以不实现14abstractclassAnimal{voidweigh(){System.out.println("我有体重");}abstractvoidmove();}classBi
5、rdextendsAnimal{voidmove(){System.out.println("我能飞行");}}classBeastextendsAnimal{voidmove(){System.out.println("我能奔跑");}}抽象类抽象方法非抽象子类中必须实现抽象父类中的抽象方法TestAbstract.javaP80,程序3-415publicclassTestAbstract{publicstaticvoidmain(String[]args){Animalanimal=newAnimal();//非法:抽象类不能实例化。Bird信天翁=newBird();System.
6、out.println("信天翁:");信天翁.weigh();信天翁.move();Beast灰熊=newBeast();System.out.println("灰熊:");灰熊.weigh();灰熊.move();}}TestAbstract.javaP80,程序3-416本章导读对象上转型最终类抽象类接口抽象类与接口的比较内部类匿名类泛型类和泛型接口17接口(interface)的概念接口可以像类一样用来对某个概念进行抽象可以用接口进行程序的框架设计,而不必关心实现的细节,排除细节对框架设计的干扰通过接口,可以实现Java语言本身不具备的类的多继承机制,一个类可以实现多个接口18接口
7、的声明接口通过使用关键字interface来声明,接口体中包含常量定义和方法声明两部分interfacePrintable{finalintMAX=100;voidadd();floatsum(floatx,floaty);}如果没有显示指明,接口中的方法被默认为是public和abstract的常量定义方法声明接口名19接口的使用一个类通过使用关键字implements声明自己实现一个或多个接口,实现多个接口时,用逗号
此文档下载收益归作者所有