java狗具有特别的接飞盘的方法_java第七章 多态 课堂笔记/作业
什么是多态:
用同一个引用类型,使用不同的实例,得到不同的结果
实现对台的三个要素是:
继承、方法重写、父类引用指向子类对象
1、使用多态时:是使用父类的类型,但是对象还是子类的对象
2、如果子类不重写父类的方法,那么当使用多态时,是不能调用子类的独有的方法(谁的类型,调用谁的方法)
3、但是当子类重写父类方法,使用多态调用的方法,看似是父类中的方法,但实际是子类中重写父类的那个方法
当:父类引用指向子类对象/父类类型创建子类对象时
这个对象不能够使用子类独有的方法
当使用多态时:创建对象必须是:父类类型 对象名 = new 子类构造方法();
抽象类:表示这个类的对象是不存在的,因此抽象类不能够被实例化对象
但是可以用它的类型来创建对象,通常是创建子类对象,也就是多态
因此不需要具体实现的方法,可以把这个方法定义为抽象方法
(抽象方法没有方法体)
抽象类中可以有非抽象方法和抽象方法。但是抽象方法只能存在于抽象类中。
实现多态的两种方式:使用父类作为方法参数、使用父类作为方法返回值
什么是多态:
用同一个引用类型,使用不同的实例,得到不同的结果
实现对台的三个要素是:
继承、方法重写、父类引用指向子类对象
1、使用多态时:是使用父类的类型,但是对象还是子类的对象
2、如果子类不重写父类的方法,那么当使用多态时,是不能调用子类的独有的方法(谁的类型,调用谁的方法)
3、但是当子类重写父类方法,使用多态调用的方法,看似是父类中的方法,但实际是子类中重写父类的那个方法
当:父类引用指向子类对象/父类类型创建子类对象时
这个对象不能够使用子类独有的方法
当使用多态时:创建对象必须是:父类类型 对象名 = new 子类构造方法();
抽象类:表示这个类的对象是不存在的,因此抽象类不能够被实例化对象
但是可以用它的类型来创建对象,通常是创建子类对象,也就是多态
因此不需要具体实现的方法,可以把这个方法定义为抽象方法
(抽象方法没有方法体)
抽象类中可以有非抽象方法和抽象方法。但是抽象方法只能存在于抽象类中。
实现多态的两种方式:使用父类作为方法参数、使用父类作为方法返回值
什么是多态:
用同一个引用类型,使用不同的实例,得到不同的结果
实现对台的三个要素是:
继承、方法重写、父类引用指向子类对象
1、使用多态时:是使用父类的类型,但是对象还是子类的对象
2、如果子类不重写父类的方法,那么当使用多态时,是不能调用子类的独有的方法(谁的类型,调用谁的方法)
3、但是当子类重写父类方法,使用多态调用的方法,看似是父类中的方法,但实际是子类中重写父类的那个方法
当:父类引用指向子类对象/父类类型创建子类对象时
这个对象不能够使用子类独有的方法
当使用多态时:创建对象必须是:父类类型 对象名 = new 子类构造方法();
抽象类:表示这个类的对象是不存在的,因此抽象类不能够被实例化对象
但是可以用它的类型来创建对象,通常是创建子类对象,也就是多态
因此不需要具体实现的方法,可以把这个方法定义为抽象方法
(抽象方法没有方法体)
抽象类中可以有非抽象方法和抽象方法。但是抽象方法只能存在于抽象类中。
实现多态的两种方式:使用父类作为方法参数、使用父类作为方法返回值
作业:
packagecom.duotai2;/*** Pet.java
*@author陈
*2019.1.21*/
public classPet {//创建宠物类//定义设置私有属性 :健康值
private inthealth;//生成get/set方法
public intgetHealth() {returnhealth;
}public void setHealth(inthealth) {this.health =health;
}//创建宠物类的方法make
public voidmake() {
System.out.println("我现在健康值是:"+this.getHealth());
}
}
packagecom.duotai2;/*** Dog.java
*@author陈
*2019.1.21*/
public class Dog extendsPet {//创建狗狗类 继承 宠物类//创建狗狗的私有方法pick
public voidpick() {
System.out.println("陪狗狗玩接飞盘的游戏");this.setHealth( this.getHealth()-1);
}
}
packagecom.duotai2;/*** Penguin.java
*@author陈
*2019.1.21*/
public class Penguin extendsPet {//创建企鹅类 继承 宠物类//创建企鹅的私有方法swim
public voidswim() {
System.out.println("让企鹅在南极游泳!");this.setHealth(this.getHealth()-3);
}
}
packagecom.duotai2;/*** Test.java
*@author陈
*2019.1.21*/
public classTest {//创建一个测试类
public static voidmain(String[] args) {
Pet pet= newPenguin();//子类到父类的转换,
pet.setHealth(80);
pet.make();//判断如果pet是Dog类,则将pet转换为Dog类型,执行Dog类特有的方法//如果pet是Penguin类,则将pet转换为Penguin类型,执行Penguin类特有的方法
if(pet instanceofDog) {
Dog dog=(Dog)pet;
dog.pick();
dog.make();
}else if(pet instanceofPenguin) {
Penguin pen=(Penguin)pet;
pen.swim();
pen.make();
}
}
}
packagecom.duotai;public classPet {private inthealth;public intgetHealth() {returnhealth;
}public void setHealth(inthealth) {if(health<0||health>100) {
System.out.println("输入的健康值超出范围,默认为60");
health= 60;
}this.health =health;
}public voidmake() {
System.out.println(this.getHealth());
}public voideat() {
}
}
packagecom.duotai;public class Dog extendsPet {public voideat() {
System.out.println("给狗狗喂狗粮");this.setHealth(getHealth()+3);
}
}
packagecom.duotai;public class Penguin extendsPet {public voideat() {super.eat();
System.out.println("给企鹅喂鱼");super.setHealth(getHealth()+5);
}
}
packagecom.duotai;public classMaster {public voidfeeding(Pet pet) {if(pet.getHealth()<80) {
pet.eat();
}else if(pet.getHealth()>=100) {
System.out.println("吃饱了!");
}
}
}
packagecom.duotai;importjava.util.Scanner;public classTest {public static voidmain(String[] args) {
Scanner sc= newScanner(System.in);//父类“宠物类” 引用指向子类“狗类”对象,子类到父类的转换
Pet dog = newDog();
System.out.println("请输入狗狗的健康值");
dog.setHealth(sc.nextInt());
Master master= newMaster();
master.feeding(dog);
dog.make();//父类“宠物类” 引用指向子类“企鹅类”对象,子类到父类的转换
Pet pen = newPenguin();
System.out.println("请输入企鹅的健康值");
pen.setHealth(sc.nextInt());
master.feeding(pen);
pen.make();
}
}
java狗具有特别的接飞盘的方法_java第七章 多态 课堂笔记/作业相关推荐
- java狗具有特别的接飞盘的方法_训练狗接飞盘,让你快速见成效的5个方法
原标题:训练狗接飞盘,让你快速见成效的5个方法 在训练中狗完成接收飞盘的任务和游戏时,狗主必须是训练对象.如果狗主面对小狗,则训练方法也有所不同.而且,狗接受训练的最佳时间越小越好,因为它更容易训练, ...
- java狗具有特别的接飞盘的方法_经验分享:狗狗接飞盘的训练方法
接飞盘是一项很好的和狗狗互动游戏,这个项目可以锻炼狗狗的弹跳和保持平衡的能力,同时可以很好地锻炼其智力和耐力.经常和狗狗进行接飞盘训练,能增进人狗之间的感情,使狗狗不再孤单,有效培养主人和狗狗之间的信 ...
- java狗具有特别的接飞盘的方法_如何让狗狗学会接飞盘?简单,这几个技巧让你事半功倍!...
标题:如何让狗狗学会接飞盘?简单,这几个技巧让你事半功倍!大多数狗狗都有捡回主人扔出去的物品的本能.但是,狗狗在复杂环境下捡东西就有些困难了.大部分狗狗是在东西落地之后再从地上捡起来,而不是像飞盘一样 ...
- java狗具有特别的接飞盘的方法_训练狗接飞盘,5个方法让你快速见成效!
在训练狗狗完成接飞盘任务和游戏的时候,家长们一定要针对性的进行训练.如果家长们面对的是小狗,那么训练方法也是不一样的.而且狗狗在接受训练的最佳时期,越小越好,因为比较容易训练,而且接受能力比较强,服从 ...
- java狗具有特别的接飞盘的方法_怎么训练狗玩飞盘?接飞盘的技术及要领分析...
怎么训练狗飞盘?许多喜欢狗狗的朋友,都希望自己的狗狗有着出众的表现或者能力,对于如何训练狗狗都会去认真研究.那么今天我们来分享下怎么训练狗接飞盘,训练中都要注意些什么呢?今天我们带着这个问题,就来和大 ...
- java狗具有特别的接飞盘的方法_训练狗接飞盘的5个技巧
在晴朗的天气里,带着你的狗狗到公园里玩飞盘游戏,相信不过是你,狗狗,还是周边的人,都会觉得这是一件很有趣的事.如果你的狗狗还没学会接飞盘游戏,看看下面几点技巧,说不定你的狗狗有很高的天赋呢. 1.循序 ...
- java狗具有特别的接飞盘的方法_狗接飞盘怎么练
训练服从口令. 想要让狗狗快速地完成接飞盘这个游戏,那么一定要让狗狗听懂咬和吐的口令.其实这个飞盘训练的过程就是一个人和狗狗一同游戏的过程.家长们需要做的就是让狗狗逐渐地增加兴趣,能够更好更快地完成咬 ...
- java狗具有特别的接飞盘的方法_【狗飞盘】狗接飞盘怎么练,好用的狗飞盘推荐_什么值得买...
训练服从口令. 想要让狗狗快速地完成接飞盘这个游戏,那么一定要让狗狗听懂咬和吐的口令.其实这个飞盘训练的过程就是一个人和狗狗一同游戏的过程.家长们需要做的就是让狗狗逐渐地增加兴趣,能够更好更快地完成咬 ...
- java程序设计基础_陈国君版第五版_第七章例题
java程序设计基础_陈国君版第五版_第七章例题 class Cylinder {private double radius;private int height;private double pi ...
最新文章
- 深度丨《主算法》作者 Pedro Domingos 谈机器学习十大误解
- 我的日常学习笔记 18.05.08(Vue自定义事件)
- js 之 object
- exist not exist 分析
- 12.文件系统——磁盘管理之RAID概述
- 我的编码规范(慢慢补充)
- vi格式化代码,撤销,重做,回退操作
- 客户关系管理系统-CRM源码
- JavaSE(九)——正则表达式、Date类、集合、泛型
- java arraybound out_java – 获取ArrayIndexOutOfBound:1异常
- JS 调试(debug)
- (6)通过输入参数(测量数据)构建三维体模型
- struts2标签库的使用
- Win7提示1970-01-01 000000 is not a valid data怎么办.
- 嵌入式linux基础学习全套精品视频教程
- 设计配色灵感|热情甜蜜色系配色方案
- Linux EXT4文件系统简介
- 完美解决cannot import name ‘_validate_lengths‘ from ‘numpy.lib.arraypad‘错误
- expect巡检服务器_linux 巡检报告
- 蚁群算法求最值c语言实现,蚁群算法代码(求函数最值)
热门文章
- was6.1偶尔报错com.ibm.websphere.ce.cm.StaleConnectionException
- 华为MUX VLAN
- Logstash系列之--JAVA自定义插件
- 贪心算法:旅行商问题(TSP)
- 享誉全球的 Java 经典著作《Java核心技术》
- 【测试基础】Linux系统组成、目录结构及基本命令
- 发邮件怎么把附件内容直接显示_一年一度调剂忙,且看招生老师怎么说
- 帮你快速升职的六大方法http://career.eol.cn/mian_shi_4350/20080818/t20080818_317758.shtml
- 浙江计算机二级c语言上机题库及答案,计算机二级C语言上机题库及答案2017
- 深入理解并行编程原理与实践