书签 分享 收藏 举报 版权申诉 / 32
上传文档赚钱

类型Java程序设计第6章-继承.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3372375
  • 上传时间:2022-08-24
  • 格式:PPT
  • 页数:32
  • 大小:4.14MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Java程序设计第6章-继承.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Java 程序设计 继承
    资源描述:

    1、第第6 6章章 继承继承知识点知识点回顾回顾u面向对象的基本概念面向对象的基本概念l面向对象思想l对象和类的关系l类之间的关系u面向对象的特征面向对象的特征l封装l继承l多态u对象的创建、使用、销毁对象的创建、使用、销毁l构造方法2本讲目标本讲目标ustaticstatic与与finalfinal关键字关键字u继承继承l继承的概念、特征及优点l访问修饰符对类成员的访问限制uthisthis与与supersuper关键字关键字 3staticstatic与与finalfinal关键字关键字 ustaticstatic关键字关键字l static修饰的变量叫静态变量静态变量l static修饰的方

    2、法叫静态方法静态方法l static修饰的代码块叫静态代码块静态代码块编写一个国家类,要编写一个国家类,要求该类中有一个变量求该类中有一个变量用来统计该类实例化用来统计该类实例化了几个中国人对象了几个中国人对象4staticstatic与与finalfinal关键字关键字 u静态变量静态变量 static static修饰的修饰的变量,又称为类变量u语法:语法:static 数据类型 变量名;u特征:特征:l静态变量属于某个类,被所有实例所共享l类变量仅在生成第一个对象时分配内存,所有实例对象共享同一个类变量,每个实例对象对类变量的改变都会影响到其它的实例对象。l可以通过类名方式或者实例名方式

    3、访问l不能被this和super访问5class Chineseclass Chinese static int count=0;static int count=0;public class Testpublic class Test public static void main(String args)public static void main(String args)for(int i=0;i3;i+)for(int i=0;i3;i+)Chinese chinese=new Chinese();Chinese chinese=new Chinese();chinese.count

    4、=chinese.count+1;chinese.count=chinese.count+1;System.out.println(Chinese.count);/System.out.println(Chinese.count);/通过类名访问静态变量通过类名访问静态变量 6使用静态变量使用静态变量staticstatic与与finalfinal关键字关键字 ustaticstatic方法方法 static修饰的方法,又成为类方法u语法:语法:访问修饰符 static 返回数据类型 方法名(参数列表)方法体;u特征:特征:l类方法不能访问实例变量,只能访问类变量或类方法。l类方法可以由类名直

    5、接调用,也可由实例对象进行调用,但不规范。78使用静态方法使用静态方法class Chineseclass Chinese static int count=0;static int count=0;static void display()static void display()System.out.println(“count=”+count);System.out.println(“count=”+count);public class Testpublic class Test public static void main(String args)public static voi

    6、d main(String args)for(int i=0;i3;i+)for(int i=0;i3;i+)Chinese chinese=new Chinese();Chinese chinese=new Chinese();chinese.count=chinese.count+1;chinese.count=chinese.count+1;Chinese.display();/Chinese.display();/通过类名访问静态方法通过类名访问静态方法 staticstatic与与finalfinal关键字关键字 u静态代码块静态代码块u特征:特征:l静态代码块不存在于任何方法体中l

    7、类中的静态代码块被自动执行,尽管我们产生了类的多个实例对象,但其中的静态代码块只被执行了一次。l当JAVA虚拟机加载类时被载入,静态代码块被执行,静态块经常用来进行类属性的初始化。910使用静态代码块使用静态代码块class StaticBlockDemoclass StaticBlockDemo static int values=new int10;static int values=new int10;static static for(int i=0;ivalues.length;i+)for(int i=0;ivalues.length;i+)valuesi=(int)(100.0

    8、valuesi=(int)(100.0*Math.random();Math.random();staticstatic与与finalfinal关键字关键字 u final final关键字关键字lfinal修饰类:是最终类,不能被其他类所继承 public final class String lfinal修饰变量:(成员变量或局部变量)即为常量,只能赋值一次,只能访问,不能修改其值。而且通常变量名用大写字母。如:public static final int INCREMENT=5lfinal修饰成员方法:是最终方法,不能被子类重写。public final void display();

    9、11继承继承u生活中的继承生活中的继承动物动物食草动物食草动物食肉动物食肉动物谁是父类?谁是父类?谁是子类?谁是子类?能说出继承的特点吗?能说出继承的特点吗?继承需要符合的关系:继承需要符合的关系:is-ais-a,父类更通用、子类更具体,父类更通用、子类更具体12生活中的继承生活中的继承(续续)u子类具有父类的一般特性(包括属性和行为),以及自子类具有父类的一般特性(包括属性和行为),以及自身特殊的特性身特殊的特性汽车汽车巴士是汽车吗?巴士是汽车吗?卡车是汽车吗?卡车是汽车吗?出租车是汽车吗?出租车是汽车吗?最大载客数量最大载客数量报站报站引擎数量引擎数量外观颜色外观颜色刹车刹车加速加速最大

    10、载重量最大载重量卸货卸货所属公司所属公司最大载客数量最大载客数量打发票打发票属性属性行为行为请问:出租请问:出租车包含哪些车包含哪些属性和行为属性和行为呢?呢?13汽车汽车小轿车小轿车卡车卡车客车客车继承继承继承继承继承继承轮船轮船交通工具交通工具继承继承继承继承基类和派生类基类和派生类u基类和派生类的概念是相对的,一个类既可以是基类,基类和派生类的概念是相对的,一个类既可以是基类,也可以是派生类也可以是派生类14为什么需要继承为什么需要继承u描述两种动物羊描述两种动物羊SheepSheep和狼和狼Wolf Wolf,各自的要求如下:,各自的要求如下:lSheepp属性:名称,重量p方法:吃饭

    11、(吃草)、睡觉、呼吸、动物描述 lWolfp属性:名称,重量p方法:吃饭(吃肉)、睡觉、呼吸、动物描述15为什么需要继承为什么需要继承(续续)u以下这个解决方案中存在着什么问题?以下这个解决方案中存在着什么问题?public class Sheep private String name;/名称private int weight;/重量public Sheep(String sname,int sweight)name=sname;weight=sweight;public void eat()System.out.println(Im hungry);System.out.println(

    12、I like to eat grass);public void sleep()System.out.println(Im sleeping);public void breathe()System.out.println(Im breathing);public void info()System.out.println(Hi,Im a“+name);System.out.println(My weigth is+weight);16为什么需要继承为什么需要继承(续续)public class Wolfprivate String name;/名称private int weight;/重量

    13、public Wolf(String sname,int sweight)name=sname;weight=sweight;public void eat()System.out.println(Im hungry);System.out.println(I like to eat meat);public void sleep()System.out.println(Im sleeping);public void breathe()System.out.println(Im breathing);public void info()System.out.println(Hi,Im a“+

    14、name);System.out.println(My weigth is+weight);17为什么需要继承为什么需要继承(续续)u存在的问题存在的问题两段代码存在重复两段代码存在重复18为什么需要继承为什么需要继承(续续)u如何改进?有没有可能建立继承关系,让如何改进?有没有可能建立继承关系,让子类自动继承子类自动继承父类的属性和方法父类的属性和方法?Sheep是动物是动物吗?吗?Wolf是动物吗?是动物吗?属属性性行行为为名称名称重量重量吃饭吃饭睡觉睡觉呼吸呼吸描述描述动物动物SheepWolf19JAVAJAVA中的中的继承继承u语法语法 class subclass-name ext

    15、ends superclass-name /类体类体 u特征特征l 父类通用,它具有更一般的特征和行为,较为抽象。子类具体,它除了具有父类的特征和行为之外,还具有自己的特征和行为l 在继承关系中,父类和子类必须满足is-a的关系。l 父类叫基类、超类,子类叫派生类。l 如果子类没有写extends,则默认该子类的父类为Objectl Java中只支持单继承l 子类不能继承父类中访问权限为private的成员变量和方法。20u优点优点l通过继承,能够复用原有代码,节省编程时间,并能够减少程序代码出错的可能性。l在JAVA编程语言中,通过继承可利用已有的类,并扩展它的属性和方法。这个已有的类可以是

    16、语言本身提供的或其他程序员编写的。lJAVA中所有的类(包括我们自己定义的类)都是直接或间接继承自java.lang.Object类。21JAVAJAVA中的中的继承继承定义父类定义父类AnimalAnimal及其子类及其子类SheepSheep、WolfWolf类类public class Animal private String name;/名称名称 private int weight;/重量重量 public Animal(String sname,int sweight)name=sname;weight=sweight;public void eat()System.out.pr

    17、intln(Im hungry);public void sleep()System.out.println(Im sleeping);public void breathe()System.out.println(Im breathing);public void info()System.out.println(Hi,Im a+name);System.out.println(My weigth is+weight);现在,所有子类中现在,所有子类中相同的代码都抽取相同的代码都抽取到父类中了到父类中了 22public class Sheep extends Animal public S

    18、heep(String sname,int sweight)super(sname,sweight);public void eat()System.out.println(I like to eat grass);public class Wolf extends Animal public Wolf(String sname,int sweight)super(sname,sweight);public void eat()System.out.println(I like to eat meat);子类自动继承父类的属性和方法,子类中不再存在重复代码子类自动继承父类的属性和方法,子类中不

    19、再存在重复代码由于由于eat()方法与父类的实方法与父类的实现有所不同,因此现有所不同,因此重写重写了该了该方法方法 23Lab6_1:Lab6_1:编写一个应用程序,设计一个汽车类 Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car 是Vehicle 的子类,其中包含的属性有载人数 loader。卡车类 Truck 是Car类的子类,其中包含的属性有载重量 payload。每个类都有构造方法和输出相关数据的方法。编写测试类CarTest进行测试。24JAVAJAVA中的继承中的继承u访问修饰符对类成员的访问限制访问修饰符对类成员的访问限制25访问修饰符访问修饰

    20、符访问权限访问权限private缺省的缺省的(default)protectedpublic当前类当前类同一包中的同一包中的类类(和和继承无关系继承无关系)不同不同包中的子类包中的子类任何类任何类thisthis与与supersuper关键字关键字 uthisthisl Java中为解决变量的命名冲突和不确定性问题,引入关键字“this”代表其所在方法的当前对象。l 每个成员方法内部,都有一个this引用变量,指向调用这个方法的对象,类中的成员方法与this之间的关系如图:26thisthis与与supersuper关键字关键字 uthisthis语法语法lthis(参数列表):调用其他的构造

    21、函数lthis.属性名:调用本对象的属性lthis.方法:调用本对象的方法uthisthis特征特征l this不能在static上下文中使用l 可以在构造方法里调用其他重载的构造方法,采用this(参数列表)的形式,根据其中的参数列表,选择相应的构造方法。l 使用this调用构造方法时必须也只能放在构造方法的第一行。27public class Animal private String name;/名称名称 private int weight;/重量重量 public Animal(String name,int weight)this.name=name;this.weight=wei

    22、ght;public void eat()System.out.println(Im hungry);public void sleep()System.out.println(Im sleeping);public void breathe()System.out.println(Im breathing);public void info()System.out.println(Hi,Im a+name);System.out.println(My weigth is+weight);28thisthis与与supersuper关键字关键字 u super superljava中通过sup

    23、er来实现对父类成员的访问,super用来引用当前对象的父类。l每个子类构造方法的第一句,都隐含了调用super()。u语法语法:l super(参数列表):调用父类的构造函数l super.属性名:调用子类继承的父类属性l super.方法:调用子类继承的构造方法2930public class Sheep extends Animal public Sheep(String sname,int sweight)super(sname,sweight);public void eat()System.out.println(I like to eat grass);ustatic与finalu继承lJava中只支持单继承l在继承关系中,父类更通用,子类更具体。父类具有一般的特征和行为,而子类除了具有父类的特征和行为外,还具有一些自己的特殊的特征和行为l使用继承可以实现代码的复用uthis与super 总结总结31谢谢谢谢!32

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Java程序设计第6章-继承.ppt
    链接地址:https://www.163wenku.com/p-3372375.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库