类的继承性精选PPT.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《类的继承性精选PPT.ppt》由会员分享,可在线阅读,更多相关《类的继承性精选PPT.ppt(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、类的继承性类的继承性第1页,此课件共68页哦第2页,此课件共68页哦第3页,此课件共68页哦第4页,此课件共68页哦第5页,此课件共68页哦访问控制权限了解访问控制权限了解 第6页,此课件共68页哦第第3讲讲 面向对象编程(高级篇)面向对象编程(高级篇)第7页,此课件共68页哦 面向对象编程(基础篇)知识回顾面向对象编程(基础篇)知识回顾第8页,此课件共68页哦主要内容主要内容3.1 继承性继承性 3.2 多态性多态性3.3 抽象类抽象类3.4接口接口3.5内部类和匿名类内部类和匿名类3.1 继承的作用3.2 子类对象的创建3.3 在子类中访问父类的成员3.4 覆盖父类的方法第9页,此课件共6
2、8页哦3.1.1 继承继承Person-name:String-age :String+getName():String+setName(String n):void+getAge():String+setAge(int a):voidStudent-name:String-age :String-school :String+getName():String+setName(String n):void+getAge():String+setAge(int a):void+getSchool():String+setSchool(String s):void1.模仿人类的思维方式模仿人类的思
3、维方式人类的继承性人类的继承性第10页,此课件共68页哦n nPersonPerson类类类类class Personclass Person private String name;private String name;private int age;private int age;public String getName()public String getName()return name;return name;public void setName(String n)public void setName(String n)name=n;name=n;public int get
4、Age()public int getAge()return age;return age;public void setAge(int a)public void setAge(int a)age=a;age=a;n nStudentStudent类类类类class Studentclass Student private String name;private String name;private int age;private int age;private String school;private String school;public String getName()publi
5、c String getName()return name;return name;public void setName(String n)public void setName(String n)name=n;name=n;public int getAge()public int getAge()return age;return age;public void setAge(int a)public void setAge(int a)age=a;age=a;public String getSchool public String getSchool return school;re
6、turn school;public void setSchool(String s)public void setSchool(String s)school=s;school=s;第11页,此课件共68页哦3.1.1 继承继承1.模仿人类的思维方式模仿人类的思维方式人类的继承性人类的继承性2.程序的代码重用性程序的代码重用性少写代码少写代码第12页,此课件共68页哦继承关系格式:继承关系格式:class class 父类父类父类父类class class 子类子类子类子类 extendsextends 父类父类父类父类第13页,此课件共68页哦QQ牧场的设计牧场的设计目的:了解在真实系统中
7、进行设计时如何进行继承层次的设计?第14页,此课件共68页哦 找出对象的共同属性和行为找出对象的共同属性和行为 这个程序必须能够在任何时候加入新类型的动物。这个程序必须能够在任何时候加入新类型的动物。这个程序必须能够在任何时候加入新类型的动物。这个程序必须能够在任何时候加入新类型的动物。首先要辨别出所有动物都有的、抽象的共同特征,然首先要辨别出所有动物都有的、抽象的共同特征,然首先要辨别出所有动物都有的、抽象的共同特征,然首先要辨别出所有动物都有的、抽象的共同特征,然后以这些共同特征设计出能够让所有动物加以扩充的类。后以这些共同特征设计出能够让所有动物加以扩充的类。后以这些共同特征设计出能够让
8、所有动物加以扩充的类。后以这些共同特征设计出能够让所有动物加以扩充的类。考虑:考虑:这这6种动物有什么共同特点?种动物有什么共同特点?这些类型有什么相关性?这些类型有什么相关性?第15页,此课件共68页哦 找出对象的共同属性和行为找出对象的共同属性和行为n n5 5个实例变量:个实例变量:个实例变量:个实例变量:picture:picture:动物动物动物动物JPEGJPEG图像的名称图像的名称图像的名称图像的名称foodfood:此动物所吃的食物:此动物所吃的食物:此动物所吃的食物:此动物所吃的食物(meat/grass)(meat/grass)hungerhunger:代表饥饿程度的:代表
9、饥饿程度的:代表饥饿程度的:代表饥饿程度的intint值。会根据动物吃了多少食物而改变。值。会根据动物吃了多少食物而改变。值。会根据动物吃了多少食物而改变。值。会根据动物吃了多少食物而改变。boundaries:boundaries:代表动物活动范围区域的长宽。代表动物活动范围区域的长宽。代表动物活动范围区域的长宽。代表动物活动范围区域的长宽。location:location:动物在活动区域中的位置。动物在活动区域中的位置。动物在活动区域中的位置。动物在活动区域中的位置。n n4 4个实例方法:个实例方法:个实例方法:个实例方法:makeNoise():makeNoise():动物发出声音的
10、行为和程序。动物发出声音的行为和程序。动物发出声音的行为和程序。动物发出声音的行为和程序。eat():eat():动物遇到食物时的行为程序。动物遇到食物时的行为程序。动物遇到食物时的行为程序。动物遇到食物时的行为程序。sleep():sleep():睡眠的行为程序。睡眠的行为程序。睡眠的行为程序。睡眠的行为程序。roam():roam():不在进食或睡眠时的行为程序。不在进食或睡眠时的行为程序。不在进食或睡眠时的行为程序。不在进食或睡眠时的行为程序。第16页,此课件共68页哦 设计代表共同状态与行为的类设计代表共同状态与行为的类Animal-String pictual-String food
11、-int hunger-Position boudaries-Position locationvoid makeNoise()void eat()void sleep()void roam()LionCatTiggerHippoDogWolf第17页,此课件共68页哦决决定定子子类类是是否否需需要要让让某某项项行行为为有有特特定的不同的运行方式定的不同的运行方式Animal成员变量。void makeNoise()void eat()void sleep()void roam()Lionvoid makeNoise()void eat()Catvoid makeNoise()void eat
12、()TiggerHippoDogWolf第18页,此课件共68页哦决决定定子子类类是是否否需需要要让让某某项项行行为为有有特特定的不同的运行方式定的不同的运行方式Animal成员变量。void makeNoise()void eat()void sleep()void roam()Lionvoid makeNoise()void eat()Catvoid makeNoise()void eat()Tiggervoid makeNoise()void eat()Dogvoid makeNoise()void eat()Hippovoid makeNoise()void eat()Wolfvoid
13、 makeNoise()void eat()第19页,此课件共68页哦寻找更多抽象化的机会寻找更多抽象化的机会Animal成员变量。void makeNoise()void eat()void sleep()void roam()Lionvoid makeNoise()void eat()Catvoid makeNoise()void eat()Tiggervoid makeNoise()void eat()Dogvoid makeNoise()void eat()Hippovoid makeNoise()void eat()Wolfvoid makeNoise()void eat()第20页
14、,此课件共68页哦完成类的继承层次完成类的继承层次Animal。Lionvoid makeNoise()void eat()Catvoid makeNoise()void eat()Tiggervoid makeNoise()void eat()Dogvoid makeNoise()void eat()Hippovoid makeNoise()void eat()Wolfvoid makeNoise()void eat()Felineroam()Canineroam()第21页,此课件共68页哦完成类的继承层次完成类的继承层次寻找更多抽象化的机会寻找更多抽象化的机会决决定定子子类类是是否否需需
15、要要让让某某项项行行为为有有特特定定的的 不同的运行方式不同的运行方式 设计代表共同状态与行为的类设计代表共同状态与行为的类如何进行继承层次的设计如何进行继承层次的设计 -自下而上的设计自下而上的设计 找出对象的共同属性和行为找出对象的共同属性和行为第22页,此课件共68页哦子类对象调用成员的原则子类对象调用成员的原则AnimalmakeNoise()eat()sleep()roam()Wolfvoid makeNoise()void eat()Canineroam()创建大野狼对象Wolf w=new Wolf();调用大野狼的方法w.makeNoise();调用犬科的方法w.roam();
16、调用动物的方法w.sleep()第23页,此课件共68页哦 添加子类的新成员添加子类的新成员 改造父类的成员改造父类的成员 继承父类的成员继承父类的成员已知父类如何进行子类设计已知父类如何进行子类设计 -自上而下的设计自上而下的设计 第24页,此课件共68页哦访问控制权限了解访问控制权限了解 第25页,此课件共68页哦 添加子类的新成员添加子类的新成员 改造父类的成员改造父类的成员 继承父类的成员继承父类的成员已知父类如何进行子类设计已知父类如何进行子类设计 -自上而下的设计自上而下的设计 第26页,此课件共68页哦3.1.2 子类对象的创建子类对象的创建 一、子类对象的实例化过程一、子类对象
17、的实例化过程二、二、super的作用的作用第27页,此课件共68页哦3.1.2 子类的创建子类的创建 一、子类对象的实例化过程一、子类对象的实例化过程class Personclass Personpublic Person()public Person()System.out.println(“System.out.println(“父类构造父类构造父类构造父类构造”)”);class Studentclass Studentpublic Student()public Student()System.out.println(“System.out.println(“子类构造子类构造子类构造
18、子类构造”)”);第28页,此课件共68页哦3.1.2 子类对象的创建子类对象的创建 一、子类对象的实例化过程一、子类对象的实例化过程public class TestDemo11public class TestDemo11public static void main(String args)public static void main(String args)Student stu=new Student();Student stu=new Student();运行结果:运行结果:?第29页,此课件共68页哦3.1.2 子类对象的创建子类对象的创建 一、子类对象的实例化过程一、子类对象
19、的实例化过程 1、先自动调用父类构造函数(父类中的无参构造函数)先自动调用父类构造函数(父类中的无参构造函数)2、然后调用子类构造函数、然后调用子类构造函数注注意意:如如果果父父类类中中有有多多个个构构造造方方法法时时,如如何何才才能能调调用用父父类类中某个特定的构造方法呢?中某个特定的构造方法呢?其其做做法法是是在在子子类类的的构构造造方方法法中中通通过过super()来来调调用用父父类特定的构造方法。类特定的构造方法。第30页,此课件共68页哦3.1.2 创建子类创建子类二、二、二、二、super()super()、super()super()class Personclass Perso
20、nprivate String name;private String name;private int age;private int age;public Person()public Person()System.out.println(“System.out.println(“调用调用调用调用PersonPerson类的无参构造方法类的无参构造方法类的无参构造方法类的无参构造方法”)”);public Peron(String name,int age)public Peron(String name,int age)System.out.println(“System.out.pri
21、ntln(“调用了调用了调用了调用了PersonPerson类的有参构造方法类的有参构造方法类的有参构造方法类的有参构造方法”)”);this.name=name;this.name=name;this.age=age;this.age=age;public void show()public void show()System.out.println(“System.out.println(“姓名:姓名:姓名:姓名:”+name+”+name+”年龄:年龄:年龄:年龄:”+age);”+age);第31页,此课件共68页哦3.1.2 子类对象的创建子类对象的创建class Student e
22、xtends Personclass Student extends Personprivate String department;private String department;public Student()public Student()System.out.println(“Student System.out.println(“Student 无参构造无参构造”)”);public Student(String name,int age,String dep)public Student(String name,int age,String dep)super(name,age
23、);super(name,age);department=dep;department=dep;System.out.println(“System.out.println(“我是我是”+department+”+department+”的学生的学生”);”);System.out.println(“StudentSystem.out.println(“Student有参构造有参构造”)”);第32页,此课件共68页哦3.1.2 子类对象的创建子类对象的创建public class TestDemo1public class TestDemo1public static void main(S
24、tring args)public static void main(String args)Student stu1=new Student();Student stu1=new Student();Student stu2=new Student(“Student stu2=new Student(“李四李四”,23,”,23,”计算机系计算机系”);”);stu1.show();stu1.show();stu2.show();stu2.show();第33页,此课件共68页哦3.1.2 子类对象的创建子类对象的创建(1)(1)省略红色字体省略红色字体super(name,age)supe
25、r(name,age),父类中的构造方法哪个会被调用?,父类中的构造方法哪个会被调用?(2)(2)子类构造方法中调用父类构造方法的子类构造方法中调用父类构造方法的super super 语句位置有没有限制?语句位置有没有限制?(3)(3)如果父类中只定义了有参的构造方法,而子类的构造方法中并如果父类中只定义了有参的构造方法,而子类的构造方法中并没有显式的用没有显式的用supersuper()来调用父类中特定的构造方法,程序()来调用父类中特定的构造方法,程序此时会有问题吗?此时会有问题吗?(4)(4)找出找出thisthis和和supersuper的相同点和不同点。的相同点和不同点。思考!思考
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 继承 精选 PPT
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内