类的继承性优秀课件.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(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、类的继承性类的继承性第1页,本讲稿共68页第2页,本讲稿共68页第3页,本讲稿共68页第4页,本讲稿共68页第5页,本讲稿共68页访问控制权限了解访问控制权限了解 第6页,本讲稿共68页第第3讲讲 面向对象编程(高级篇)面向对象编程(高级篇)第7页,本讲稿共68页 面向对象编程(基础篇)知识回顾面向对象编程(基础篇)知识回顾第8页,本讲稿共68页主要内容主要内容3.1 3.1 继承性继承性继承性继承性 3.2 3.2 多态性多态性多态性多态性3.3 3.3 抽象类抽象类抽象类抽象类3.43.4接口接口接口接口3.53.5内部类和匿名类内部类和匿名类内部类和匿名类内部类和匿名类3.1 继承的作用
2、3.2 子类对象的创建3.3 在子类中访问父类的成员3.4 覆盖父类的方法第9页,本讲稿共68页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():Str
3、ing+setSchool(String s):void1.模仿人类的思维方式模仿人类的思维方式人类的继承性人类的继承性第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 s
4、etName(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;n nStudentStudent类类类类class Studentclass Student private String name;private String name;private int age;private int age;private String school;privat
5、e String school;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 getAge()public int getAge()return age;return age;public void setAge(int a)public void setAge(int a)age=a;age=a;public String getSch
6、ool public String getSchool return school;return 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 父类
7、父类父类父类第13页,本讲稿共68页QQ牧场的设计牧场的设计目的:了解在真实系统中进行设计时如何进行继承层次的设计?第14页,本讲稿共68页 找出对象的共同属性和行为找出对象的共同属性和行为 这个程序必须能够在任何时候加入新类型的动物。这个程序必须能够在任何时候加入新类型的动物。这个程序必须能够在任何时候加入新类型的动物。这个程序必须能够在任何时候加入新类型的动物。首先要辨别出所有动物都有的、抽象的共同特征,首先要辨别出所有动物都有的、抽象的共同特征,首先要辨别出所有动物都有的、抽象的共同特征,首先要辨别出所有动物都有的、抽象的共同特征,然后以这些共同特征设计出能够让所有动物加以扩然后以这些共
8、同特征设计出能够让所有动物加以扩然后以这些共同特征设计出能够让所有动物加以扩然后以这些共同特征设计出能够让所有动物加以扩充的类。充的类。充的类。充的类。考虑:考虑:这这6种动物有什么共同特点?种动物有什么共同特点?这些类型有什么相关性?这些类型有什么相关性?第15页,本讲稿共68页 找出对象的共同属性和行为找出对象的共同属性和行为n n5 5个实例变量:个实例变量:个实例变量:个实例变量:picture:picture:动物动物动物动物JPEGJPEG图像的名称图像的名称图像的名称图像的名称foodfood:此动物所吃的食物:此动物所吃的食物:此动物所吃的食物:此动物所吃的食物(meat/gr
9、ass)(meat/grass)hungerhunger:代表饥饿程度的:代表饥饿程度的:代表饥饿程度的:代表饥饿程度的intint值。会根据动物吃了多少食物而改变。值。会根据动物吃了多少食物而改变。值。会根据动物吃了多少食物而改变。值。会根据动物吃了多少食物而改变。boundaries:boundaries:代表动物活动范围区域的长宽。代表动物活动范围区域的长宽。代表动物活动范围区域的长宽。代表动物活动范围区域的长宽。location:location:动物在活动区域中的位置。动物在活动区域中的位置。动物在活动区域中的位置。动物在活动区域中的位置。n n4 4个实例方法:个实例方法:个实例方
10、法:个实例方法:makeNoise():makeNoise():动物发出声音的行为和程序。动物发出声音的行为和程序。动物发出声音的行为和程序。动物发出声音的行为和程序。eat():eat():动物遇到食物时的行为程序。动物遇到食物时的行为程序。动物遇到食物时的行为程序。动物遇到食物时的行为程序。sleep():sleep():睡眠的行为程序。睡眠的行为程序。睡眠的行为程序。睡眠的行为程序。roam():roam():不在进食或睡眠时的行为程序。不在进食或睡眠时的行为程序。不在进食或睡眠时的行为程序。不在进食或睡眠时的行为程序。第16页,本讲稿共68页 设计代表共同状态与行为的类设计代表共同状态
11、与行为的类Animal-String pictual-String food-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()
12、void eat()Catvoid makeNoise()void eat()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()Hip
13、povoid makeNoise()void eat()Wolfvoid 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(
14、)Wolfvoid makeNoise()void eat()第20页,本讲稿共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
16、eat()Canineroam()创建大野狼对象Wolf w=new Wolf();调用大野狼的方法w.makeNoise();调用犬科的方法w.roam();调用动物的方法w.sleep()第23页,本讲稿共68页 添加子类的新成员添加子类的新成员 改造父类的成员改造父类的成员 继承父类的成员继承父类的成员已知父类如何进行子类设计已知父类如何进行子类设计 -自上而下的设计自上而下的设计 第24页,本讲稿共68页访问控制权限了解访问控制权限了解 第25页,本讲稿共68页 添加子类的新成员添加子类的新成员 改造父类的成员改造父类的成员 继承父类的成员继承父类的成员已知父类如何进行子类设计已知父类
17、如何进行子类设计 -自上而下的设计自上而下的设计自上而下的设计自上而下的设计 第26页,本讲稿共68页3.1.2 子类对象的创建子类对象的创建 一、子类对象的实例化过程一、子类对象的实例化过程一、子类对象的实例化过程一、子类对象的实例化过程二、二、二、二、supersuper的作用的作用的作用的作用第27页,本讲稿共68页3.1.2 子类的创建子类的创建 一、子类对象的实例化过程一、子类对象的实例化过程一、子类对象的实例化过程一、子类对象的实例化过程class Personclass Personpublic Person()public Person()System.out.println(
18、“System.out.println(“父类构造父类构造父类构造父类构造”)”);class Studentclass Studentpublic Student()public Student()System.out.println(“System.out.println(“子类构造子类构造子类构造子类构造”)”);第28页,本讲稿共68页3.1.2 子类对象的创建子类对象的创建 一、子类对象的实例化过程一、子类对象的实例化过程一、子类对象的实例化过程一、子类对象的实例化过程public class TestDemo11public class TestDemo11public stati
19、c void main(String args)public static void main(String args)Student stu=new Student();Student stu=new Student();运行结果:运行结果:?第29页,本讲稿共68页3.1.2 子类对象的创建子类对象的创建 一、子类对象的实例化过程一、子类对象的实例化过程一、子类对象的实例化过程一、子类对象的实例化过程 1 1、先自动调用父类构造函数(父类中的无参构造函数)先自动调用父类构造函数(父类中的无参构造函数)先自动调用父类构造函数(父类中的无参构造函数)先自动调用父类构造函数(父类中的无参构造函数
20、)2 2、然后调用子类构造函数、然后调用子类构造函数、然后调用子类构造函数、然后调用子类构造函数注注注注意意意意:如如如如果果果果父父父父类类类类中中中中有有有有多多多多个个个个构构构构造造造造方方方方法法法法时时时时,如如如如何何何何才才才才能能能能调调调调用用用用父父父父类类类类中某个特定的构造方法呢?中某个特定的构造方法呢?中某个特定的构造方法呢?中某个特定的构造方法呢?其其其其做做做做法法法法是是是是在在在在子子子子类类类类的的的的构构构构造造造造方方方方法法法法中中中中通通通通过过过过supersuper()来来来来调调调调用用用用父父父父类特定的构造方法。类特定的构造方法。类特定的
21、构造方法。类特定的构造方法。第30页,本讲稿共68页3.1.2 创建子类创建子类二、二、二、二、super()super()、super()super()class Personclass Personprivate String name;private String name;private int age;private int age;public Person()public Person()System.out.println(“System.out.println(“调用调用调用调用PersonPerson类的无参构造方法类的无参构造方法类的无参构造方法类的无参构造方法”)”);
22、public Peron(String name,int age)public Peron(String name,int age)System.out.println(“System.out.println(“调用了调用了调用了调用了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(“姓
23、名:姓名:姓名:姓名:”+name+”+name+”年龄:年龄:年龄:年龄:”+age);”+age);第31页,本讲稿共68页3.1.2 子类对象的创建子类对象的创建class Student extends Personclass Student extends Personprivate String department;private String department;public Student()public Student()System.out.println(“Student System.out.println(“Student 无参构造无参构造”)”);public
24、Student(String name,int age,String dep)public Student(String name,int age,String dep)super(name,age);super(name,age);department=dep;department=dep;System.out.println(“System.out.println(“我是我是”+department+”+department+”的学生的学生”);”);System.out.println(“StudentSystem.out.println(“Student有参构造有参构造”)”);第32
25、页,本讲稿共68页3.1.2 子类对象的创建子类对象的创建public class TestDemo1public class TestDemo1public static void main(String 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.sho
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 继承 优秀 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内