《Java技术》第三次作业张晓楠

classGrandparent{publicGrandparent(){System.out.println("GrandParentCreated.");}publicGrandparent(Stringstring){System.out.println("GrandParentCreated.String:"+string);}}classParentextendsGrandparent{publicParent(){System.out.println("ParentCreated");super("Hello.Grandparent.");}}classChildextendsParent{publicChild(){System.out.println("ChildCreated");}}publicclassTest{publicstaticvoidmain(Stringargs[]){Childc=newChild();}}这个程序不能通过编译。程序中Parent类继承了Grandparent类,父类中已经含有无参构造方法,对父类含参数的构造方法,子类可以通过在定义自己的构造方法中使用super关键字来调用它,但这个调用语句必须是子类构造方法的第一个可执行语句。修改结果:

classGrandparent{publicGrandparent(){System.out.println("GrandParentCreated.");}publicGrandparent(Stringstring){System.out.println("GrandParentCreated.String:"+string);}}classParentextendsGrandparent{publicParent(){ super("Hello.Grandparent."); System.out.println("ParentCreated");}}classChildextendsParent{publicChild(){System.out.println("ChildCreated");}}publicclassTest{publicstaticvoidmain(Stringargs[]){Childc=newChild();}}运行结果:

GrandParentCreated.String:Hello.Grandparent.ParentCreatedChildCreated构造方法的继承原则:

不能在调用父类的构造方法之前,运行子类的构造方法。构造方法(constructor)是一种特殊的方法。主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同来区分它们即构造函数的重载。构造函数的功能主要用于在类的对象创建时定义初始化的状态。

构造一个对象,先调用其构造方法,来初始化其成员函数和成员变量。子类拥有父的成员变量和成员方法,如果不调用,则从父类继承而来的成员变量和成员方法得不到正确的初始化。因为父类不知道子类有什么变量,子类也得不到初始化的父类变量,导致程序运行出错!

classAnimal{voidshout(){System.out.println("动物叫!");}}classDogextendsAnimal{publicvoidshout(){System.out.println("汪汪......!");}publicvoidsleep(){System.out.println("狗狗睡觉......");}}publicclassTest{publicstaticvoidmain(Stringargs[]){Animalanimal=newDog();animal.shout();animal.sleep();Dogdog=animal;dog.sleep();Animalanimal2=newAnimal();dog=(Dog)animal2;dog.shout();}}程序中的错误:1.编译出错animal.sleep();Dogdog=animal;

2.编译时没有问题但运行时会出错

Animalanimal2=newAnimal();dog=(Dog)animal2;dog.shout();原因:1.animal是子类Dog的上转型对象,上转型对象不能操作子类新增加的成员变量,不能使用子类新增的方法。父类对象定义为子类对象称为向下转型,对于向下转型,需要强制转型,即必须明确指明要转型的子类类型:格式:子类名称子类对象=(子类)父类实例;2.animal2是一个新定义的父类对象,即父类引用的对象是父类本身。父类对象不能确定dog是自己的子类。需要使用instanceof关键字避免此错误。改正:

classAnimal{voidshout(){System.out.println("动物叫!");}}classDogextendsAnimal{publicvoidshout(){System.out.println("汪汪......!");}publicvoidsleep(){System.out.println("狗狗睡觉......");}}publicclassTest{publicstaticvoidmain(Stringargs[]){Animalanimal=newDog();animal.shout();//animal.sleep();Dogdog=(Dog)animal;dog.sleep();Animalanimal2=newAnimal();if(animal2instanceofDog){ dog=(Dog)animal2; dog.shout();}}}运行结果:

汪汪......!狗狗睡觉......3.运行下列程序classPerson{privateStringname;privateintage;publicPerson(Stringname,intage){this.name=name;this.age=age;}}publicclassTest{publicstaticvoidmain(Stringargs[]){Personper=newPerson("张三",20);System.out.println(per);System.out.println(per.toString());}}(1)程序的运行结果如下,说明什么问题?

Person@166afb3Person@166afb3System.out.println(per);默认调用父类Object的toString方法。(2)那么,程序的运行结果到底是什么呢?利用eclipse打开println(per)方法的源码,查看该方法中又调用了哪些方法,能否解释本例的运行结果?

publicvoidprintln(Objectx){Strings=String.valueOf(x);synchronized(this){print(s);newLine();}}valueOf(x)//iftheargumentisnull,thenastringequalto"null";otherwise,thevalueofobj.toString()isreturned.如果参数为空字符串,则返回空,否则,返回toString()的返回值。toString()返回一个字符串用于描述当前对象,返回的具体内容:类名@对象的hash码十六进制表示。(3)在Person类中增加如下方法

publicStringtoString(){return"姓名:"+this.name+",年龄:"+this.age;}重新运行程序,程序的执行结果是什么?说明什么问题?可参考教材P229执行结果:

姓名:张三,年龄:20姓名:张三,年龄:20说明在Person类中完成了对父类Object的toString类的重写。

定义一个车辆接口包含三个属性:编号、名称、租金。对每个属性分别定义get,set方法。分别定义一个载客量和载货量接口,分别具有载客量和载货量属性并且定义get,set方法。客车类、货车类、皮卡类同时继承车辆接口,客车类继承载客量接口,货车类继承载货量接口,皮卡类再同是继承载客量和载货量接口。在测试类中完成可租车列表的创建。分别为客车类、货车类、皮卡类创建对象数组,每个类的对象个数表示可租车数量,每次租一辆车去掉一个对象,每进行一次租车重新显示一次可租车对象,用户每次从可租车对象中选择要租用的车辆。

interfaceAnimal{voidbreathe();voidrun();voideat();}classDogimplementsAnimal{publicvoidbreathe(){System.out.println("I'mbreathing");}voideat(){System.out.println("I'meating");}}publicclassTest{publicstaticvoidmain(String[]args){Dogdog=newDog();dog.breathe();dog.eat();}}不能通过编译。

interfaceAnimal{voidbreathe();voidrun();voideat();}classDogimplementsAnimal{publicvoidbreathe(){System.out.println("I'mbreathing");}publicvoidrun(){ }publicvoideat(){System.out.println("I'meating");}}publicclassTest{publicstaticvoidmain(String[]args){Dogdog=newDog();dog.breathe();dog.eat();}}运行结果:

I'mbreathingI'meating6.super键字和final关键字在子类重写父类方法后,要访问父类被重写的方法,需要用super关键字来引用当前类的父类。super的用法有两种情况:(1)访问的父类中的成员变量和成员方法super.变量名super.方法名([参数表])(2)调用父类的构造方法super([参数表])在Java中可以使用final关键字定义类、方法、属性:

覆盖实现多态:

重载实现多态:

publicclassTest{publicstaticvoidmain(String[]args){Personp=newStudent();//向上转型Students=(Student)p;//向下转型s.eat();s.study();Personp1=newPerson();if(p1instanceofStudent){s=(Student)p1;//向下转型s.eat();}}}9.接口接口与类的不同在于:

interfaceA{ StringAUTHOR="李兴华"; //定义全局常量 voidprint(); //定义抽象方法 StringgetInfo();//定义抽象方法}接口的实现:格式:

abstractclassDoor{publicabstractvoidopen();publicabstractvoidclose();}接口

interfaceDoor{publicabstractvoidopen();publicabstractvoidclose();}需要门具有报警alarm()的功能,怎么办?方案一:在类中或接口中增加alarm()方法,有问题吗?分析:open()和close()属于门本身固有的行为特性,而alarm()属于扩展的行为。方案二:将报警设计为一个接口,包含alarm()行为,Door设计为一个抽象类,包含open和close两种行为。设计一个报警门继承Door类和实现Alarm接口。

interfaceAlarm{voidalarm();}abstractclassDoor{publicabstractvoidopen();publicabstractvoidclose();}classAlarmDoorextendsDoorimplementsAlarm{publicvoidopen(){//......}publicvoidclose(){//......}publicvoidalarm(){//......}}(二)实验总结1.银行新用户现金业务办理设计思路:

2.定义员工类,具有姓名、年龄、性别属性,并具有构造方法和显示数据方法。设计思路:

3.按照下面要求完成类的设计设计思路:

4.饲养员小李设计思路:

5.宠物商店宠物种类有猫、狗,宠物信息包括:编号、种类、品种、单价、数量。要求实现以下功能:(1)展示所有宠物(2)购买宠物(3)展示购买清单:显示购买的宠物品种,数量,价格合计及购买宠物的总价钱

6.设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。设计思路:

7.模拟物流快递系统设计思路:

运货人小张正在驾驶编号为zh1002的长城发送货物!京东快递运输中......货物当前坐标:193,485//运输中信息

货物运输已完成运货人小张所驾驶编号为zh1002的长城已归还!//运输后信息

THE END
1.狗狗托运有单号吗狗狗托运有单号吗清风暖阳 2024-7-11 狗狗托运有单号。托运前一天确认宠物运输的订单。托运是物流的一种形式,指托运人委托具有托运资质的公司将货物运输到指定地点,交给指定收货人的服务。根据托运方式不同,可分为海运托运、陆路托运、空运托运。货物包装应能充分防止货物在运输中灭失和腐坏,保证货物多次装卸不致...https://m.edu.iask.sina.com.cn/jy/gSvGQRm3N3.html
2.上海宠物托运运输物流单号查询请注意输入正确的上海宠物托运运输物流单号,如无法查询,可通过电话联系上海宠物托运运输物流公司进行查询。物流单号通常由数字和字母组成,是你快递包裹的唯一标识代码,也包含了你的物流快递的详细信息。物流单号方便物流公司、发件人以及收件人实时跟踪物流快件的信息。每个物流和快递公司品牌的单号都有规律可循的,大多...https://www.chinawutong.com/224/1347213.html
3.托运流程5、提货要求 坐上飞机后托运公司立即给主人航班号\运单号\抵达时间。接宠物的时候收货人记得带上和报给托运公司的姓名一致的身份证,并且在航班到达1小时内到机场,飞机落地后1小时左右凭收到的货运单号和本人身份证到机场货运窗口接宠物。http://www.shcwty.com/chongwutuoyun/about/about-10.html
4.飞机空运宠物多少钱?宠物托运怎么办理?航空公司出具运单后,我司客服会立即通知接机人托运单号及航班的起飞降落时间,正常情况下在飞机降落一个半小时后即可接到您的爱宠。 宠物运输的费用 代办检疫证明的费用是统一的150元,空运费用要根据宠物体型的大小和运送的目的地而定,一般小型的宠物最低收费标准是500元,体型大的宠物费用高。 http://www.jixiangyouau.com/news-ds/30.html
1.寄宠物用什么快递,哪个快递可以寄活体宠物本文摘要:很多人搬家的时候,没有办法带走宠物,因为宠物上不了飞机火车等公共交通工具。那么主人回家时,家里的猫咪或狗狗怎么办呢,有什么快递可以寄宠物吗?哪个快递可以寄活体宠物宠必达可... 很多人搬家的时候,没有办法带走宠物,因为宠物上不了飞机火车等公共交通工具。那么主人回家时,家里的猫咪或狗狗怎么办呢,有...https://zb.lee888.cn/news/qa/29342.html
2....快递单号显示在运输途中但是那个人和我说狗狗还没发货关于我在微信和店主买了只宠物狗钱付了 然后第二天有个电话过来说要中转费和健康检查费还要我支付430元合理吗 快递单号显示在运输途中但是那个人和我说狗狗还没发货的律师回答 张翠英律师 已帮助 48217人· 综评4.9 咨询我 不合理 2021.02.22 15:41 · IP属地:北京 西城区 王笛律师平台推荐 已帮助 2789...https://m.66law.cn/question/34511213.aspx
3.活体宠物国际快递单号查询(活体宠物怎么快递怎么收费)活体托运有没有单号? 你好!活体托运是没有单号的。 活体托运为航空运输,没有单号,但有托运回执单,可以凭回执单上的货物编号去领取宠物; 如果是航空托运宠物,也没有像快递一样明确的单号来查询其运送阶段,但会给予一张回执单,写明宠物所在货箱编号,等运输专机到达目的地,凭回执单可以领取宠物。这种回执单也无法...https://www.guojiexpress.com/5958/
4.火车运输宠物安全吗信息服务行业资讯火车运输宠物安全吗更新时间:2024-11-13 00:13:17 发布时间:58分钟前1. 我家小猫上次坐火车,一路上吓得直发抖,回来后好几天都不精神,真心不建议火车运宠物,太受罪了! 2. 火车运宠物?想想都心疼!车厢那么闷,宠物又不能说话,万一出了啥事都没人知道,还是自己开车带吧。 3. 我家狗狗坐过一次火车,全程都在...https://m.b2b18.com/news/show-1005890.html
5.讨论求助!又发现韵达运输活体宠物!又发现韵达运输活体宠物! 来自: 雁客 2022-05-09 15:07:49 已编辑 事情是在狗群里 一个狗家长出门看见超市驿站门口有小狗叫 走近才发现是纸箱里 有狗叫,纸箱上面赫然写着“拒收”二字 查询物流单号是从南京运往四川,等于小狗已经呆在纸箱里被运来运去三天三夜了,没吃没喝。 所幸发现时还有叫声 没有死...https://www.douban.com/group/topic/266430299/
6.空运宠物到南昌专线运输专业空运宠物当天到达13316877142价格...本页信息为深圳市环东国际货运代理有限公司为您提供的"空运宠物到南昌专线运输专业空运宠物当天到达13316877142"产品信息,如您想了解更多关于"空运宠物到南昌专线运输专业空运宠物当天到达13316877142"价格、型号、厂家请联系厂家,或给厂家留言。获取最低报价 商家收到后会立即联系您 信息保护中 同意 《服务条款》并允许...https://www.china.cn/guoneikongyun/3670164384.html
7.漯河宠物滞留死亡事件调查:有卖家质疑“韵达运单造假说”,曾多次...对此,一名活体宠物卖家告诉红星新闻,对于韵达的回应,他并不相信:“这次我损失了一万六千多元,但是我的同一批单号的货物,16号发出的就都没有问题,已经安全送达买家手里,但第二天发出的,就遇到这个事,现在韵达方面回复是单号造假,我很疑惑。” 【营救】 ...https://m.cqcb.com/shuangcheng/2020-09-30/3069759_pc.html
8.今日发布:长沙到泰国宠物运输2024全+境+派+达+直达价格,厂家...长沙到泰国回头车、大型机器设备运输 装电子产品及各种纸箱货物。 我们24小时——订单处理——需求——装卸搬运——仓库和储存——称重、检测、货物装车——交通和运输(中途客户可根据物流单号随时跟踪查询物品 ) 。救援车,高栏车,低栏平板车,厢货车,飞翼车,爬梯车,尾板车,冷藏车,重型半挂车,超限车型半挂车,各种...http://www.28hxj.com/pd_439619703.html
9.快递古筝多少钱?沙发快递的价格因多种因素而异,包括沙发尺寸和重量、运输距离和目的地、运输方式和保险选择等。在选择沙发快递服务时,建议你进行综合比较,并选择口碑良好、价格合理、服务优质的公司。 希望本文能对你了解沙发快递价格有所帮助!如果你有任何问题或者意见,欢迎在下方留言。 http://www.gshichina.com/kdzx/62072.html
10.火车托运宠物可以和宠物待在一起吗(火车上可以带宠物狗吗)如果你的宠物是蛇、蜈蚣等猛兽,则无法办理押运或托运的,因此不能带上火车。宠物托运注意事项:1、提前咨询:如果宠物体重超过20千克,或者起始车站和终点车站没有开办行包运输业务,那宠物无法办理托运。2、办检疫证明:宠物托运要求出示动物检疫合格证,主人需提前携带个人身份证和宠物免疫证明去动物检疫局办理妥当。如果没...https://www.yq003.cn/article/39777.html
11.宠物空运有哪些流程呢7 宠物托运走前为了避免宠物晕机,在托运走前最好空腹一顿,只适量的给宝贝们喝点水即可。 8 收货人信息:宠物上飞机之后我们会致电告知提货单号、提货电话、提货地点。根据配舱航班信息宠物在机场的航空货运提货处提取。 9 飞机落地后因装卸货物并录入电脑记录,故需要1-2个小时的等待,才能接到宠物。根据当地机场的规...http://www.whthkg.com/ProductShow.asp?ID=20
12.宠物乘运托运爱宠托运流程费用及注意宠物搭乘交通工具知识...办理动物健康免疫证明、动物检疫证明、运输器械消毒证明; 登机前要求 ①在托运当天不要给狗狗进食,只需喂水;②注意地达地点的天气温度,提前给宠物加减衣物; 提货要求 带上身份证及收到的货运单号,并且在航班到达1小时内到机场。 查看更多>> 宠物坐飞机 ...https://www.maigoo.com/goomai/199703.html
13.乘机旅客问题问与答需要县级以上医院的病例诊断书、病历证明,药费单不得低于50元人民币,以及主治医师写的“不宜乘机”的证明,将以上原件邮寄到航空公司审核,审核期大约2个月左右。 21、我在济南,可不可以帮客人预定北京-上海的机票? 可以的,现在都是电子客票,只要客人的姓名和证件号相对应,客人可以直接到机场凭有效证件登机。 https://www.360wenmi.com/f/file666ynfz5.html