高级程序设计语言(Java版)5 Java高级特性.pptx
《高级程序设计语言(Java版)5 Java高级特性.pptx》由会员分享,可在线阅读,更多相关《高级程序设计语言(Java版)5 Java高级特性.pptx(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5 5章章 高级特性高级特性目录目录5.1 类的封装5.2 类的继承5.3 类的多态5.4 综合实例5.5 习题5.1 5.1 类的封装类的封装5.1.1 封装的基本概念 隐藏的过程就是封装。封装性把对象的属性和行为结合成一个独立单位类,并且要尽可能多尽可能好的隐藏对象的内部细节,需要的只是提供外部接口(接口的概念在后续章节中会详细讲解)。封装性是类能够建立起严格的内部结构,对内部信息起到了保护作用,减少了外部的干扰和影响,有效保证了类自身的独立性。Java语言中所提到的封装性包含两个方面的含义:对象的全部属性和方法都结合在一起,形成一个不可分割的独立单位;尽可能隐藏对象的内部结构;【实例
2、5-1】Employee.javaPublic class Employee /private权限 private String name;private double salary;private static int count;/public权限 public String getName()return name;/public权限 Public void setName(String name)this.name=name;5.1.2 封装的4种访问控制级别public:公共的,最高的访问级别,类的public成员所有类的成员都可以访问。protected:受保护的,类的protec
3、ted成员只能被该类的成员以及其子类成员访问。还可以被同一个包中其他类的成员访问。private:私有的,不对外公开,类的private成员只能被该类的成员访问,访问级别最低。default:类的成员什么修饰符都没有,又叫包修饰符,只有类本身成员和当前包下类的成员可以访问。下面给出对比的表格以便更清晰的对比四种修饰符的使用环境,表5-1修饰符对比:修饰符修饰符本类本类同包其他类同包其他类不同包子类不同包子类不同包非子类不同包非子类publicYesYesYesYesprotectedYesYesYesNoprivateYesYesNoNodefaultYesNoNoNo5.2 5.2 类的继承
4、类的继承 在开始继承的学习之前,先看两个生活中的例子,如图5-1 动物的继承,图5-2汽车的继承:动物食草动物食肉动物谁是父类?谁是子类?继承需要符合的关系:父类更通用,子类更具体牛兔子狮子老虎奶牛肉牛图5-1 动物的继承引擎数量引擎数量外观颜色外观颜色刹车刹车加速加速汽车汽车属性属性行为行为公交车公交车卡车卡车轿车轿车图5-2汽车的继承5.2.1 继承的基本概念继承,是对有着共同特性的多类事物,进行再抽象成一个类。这个类就是多类事物的父类。父类的意义在于抽取多类事物的共性。Java中的继承要使用extends关键字,并且java中只允许单继承,也就是一个类只能有一个父类,是继承关系呈树状,体
5、现了java的简单性。Java语言继承的一般格式:class 子类名 extends 父类名 方法体;【实例5-2】Extends.java/创建父类class SUPER int i,j;void showij()System.out.println(i 和 j:+i+j);class SUB extends SUPER int k;void showk()System.out.println(k:+k);void sum()System.out.println(i+j+k:+(i+j+k);class Extends public static void main(String args)
6、SUPER superTest=new SUPER();SUB subTest=new SUB();System.out.println(superTest内容:);superTest.showij();System.out.println();subTest.i=1;subTest.j=2;subTest.k=3;System.out.println(subTest内容:);subTest.showij();subTest.showk();System.out.println();System.out.println(i,j,k之和:);subTest.sum();运行结果:superTes
7、t内容:i 和 j:0 0subTest内容:i 和 j:1 2k:3i,j,k之和:i+j+k:65.2.2 父类和子类 父类代表的是共性,从一个父类继承的所有类都继承了这个父类的功能。在Java程序设计中,我们力图发现并且提取共性来构造父类。子类继承了父类的功能,并根据具体需求来添加功能。当创建一个新类的时候,不用全部写出所有的属性和方法,只需要声明该类继承已定义过的父类的属性和方法,这个新类便叫做子类,每个子类也可以成为将来某个子类的父类。子类可以从父类中继承属性,也可以继承方法。子类对父类的继承是Java语言中很常用,在这里总结子类继承父类的准则:1)子类能够继承父类中public和p
8、rotected的成员;2)如果子类和父类在同一个包内,子类能够继承父类中没有访问控制的成员;3)子类不能继承父类中private成员;4)子类不能继承父类中的构造方法(但可以使用super关键字来调用,我们在后面5.2.5中会讲到)。5)子类不能继承父类隐藏的成员变量和覆盖的父类方法;5.2.3 抽象类和抽象方法抽象类就是用abstract关键字来修饰的一个类。抽象类必须被继承,但是不能被实例化。下面是创建抽象类的一般格式:abstract class 抽象类 方法体;抽象方法是用abstract关键字来修饰的一个方法,抽象方法只能声明,不能实现。下面是创建抽象方法的一般格式:abstrac
9、t 返回类型 抽象方法(参数);抽象类和抽象方法的使用准则:1)抽象类不能被直接实例化,只有它的非抽象子类可以创建对象;2)抽象类中不一定包含抽象方法,但包含抽象方法的类必定是抽象类;3)抽象类中的抽象方法只是声明,不包含方法体;4)构造方法和类方法不能声明为抽象方法;5)抽象类的子类必须给出抽象类中的抽象方法的具体实现,如果该子类也是抽象类,则不需要。5.2.4 super的使用【实例5-4】调用父类的构造方法:public class Employeeprivate String name;private int age;private String salary;public Emplo
10、yee(String name,int age,String salary)this.name=name;this.age=age;this.salary=salary;public Employee(String name,int age)this(name,age,null);public Employee(String name,String salary)this(name,24,salary);public Employee(String name)this(name,24);class Manager extends Employeeprivate String Mname;pub
11、lic Manager(String name,String salary,String Mname)super(name,salary);this.Mname=Mname;public Manager(String name,String Mname)super(name);this.Mname=Mname;public Manager(String Mname)/报错this.Mname=Mname;【实例5-5】调用父类中被隐藏的成员变量和覆盖的父类方法:Super.javaclass Animalint feather;Animal()System.out.println(第一个con
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级程序设计语言Java版5 Java高级特性 高级 程序设计语言 Java 特性
限制150内