什么是多态:

用同一个引用类型,使用不同的实例,得到不同的结果

实现对台的三个要素是:

继承、方法重写、父类引用指向子类对象

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第七章 多态 课堂笔记/作业相关推荐

  1. java狗具有特别的接飞盘的方法_训练狗接飞盘,让你快速见成效的5个方法

    原标题:训练狗接飞盘,让你快速见成效的5个方法 在训练中狗完成接收飞盘的任务和游戏时,狗主必须是训练对象.如果狗主面对小狗,则训练方法也有所不同.而且,狗接受训练的最佳时间越小越好,因为它更容易训练, ...

  2. java狗具有特别的接飞盘的方法_经验分享:狗狗接飞盘的训练方法

    接飞盘是一项很好的和狗狗互动游戏,这个项目可以锻炼狗狗的弹跳和保持平衡的能力,同时可以很好地锻炼其智力和耐力.经常和狗狗进行接飞盘训练,能增进人狗之间的感情,使狗狗不再孤单,有效培养主人和狗狗之间的信 ...

  3. java狗具有特别的接飞盘的方法_如何让狗狗学会接飞盘?简单,这几个技巧让你事半功倍!...

    标题:如何让狗狗学会接飞盘?简单,这几个技巧让你事半功倍!大多数狗狗都有捡回主人扔出去的物品的本能.但是,狗狗在复杂环境下捡东西就有些困难了.大部分狗狗是在东西落地之后再从地上捡起来,而不是像飞盘一样 ...

  4. java狗具有特别的接飞盘的方法_训练狗接飞盘,5个方法让你快速见成效!

    在训练狗狗完成接飞盘任务和游戏的时候,家长们一定要针对性的进行训练.如果家长们面对的是小狗,那么训练方法也是不一样的.而且狗狗在接受训练的最佳时期,越小越好,因为比较容易训练,而且接受能力比较强,服从 ...

  5. java狗具有特别的接飞盘的方法_怎么训练狗玩飞盘?接飞盘的技术及要领分析...

    怎么训练狗飞盘?许多喜欢狗狗的朋友,都希望自己的狗狗有着出众的表现或者能力,对于如何训练狗狗都会去认真研究.那么今天我们来分享下怎么训练狗接飞盘,训练中都要注意些什么呢?今天我们带着这个问题,就来和大 ...

  6. java狗具有特别的接飞盘的方法_训练狗接飞盘的5个技巧

    在晴朗的天气里,带着你的狗狗到公园里玩飞盘游戏,相信不过是你,狗狗,还是周边的人,都会觉得这是一件很有趣的事.如果你的狗狗还没学会接飞盘游戏,看看下面几点技巧,说不定你的狗狗有很高的天赋呢. 1.循序 ...

  7. java狗具有特别的接飞盘的方法_狗接飞盘怎么练

    训练服从口令. 想要让狗狗快速地完成接飞盘这个游戏,那么一定要让狗狗听懂咬和吐的口令.其实这个飞盘训练的过程就是一个人和狗狗一同游戏的过程.家长们需要做的就是让狗狗逐渐地增加兴趣,能够更好更快地完成咬 ...

  8. java狗具有特别的接飞盘的方法_【狗飞盘】狗接飞盘怎么练,好用的狗飞盘推荐_什么值得买...

    训练服从口令. 想要让狗狗快速地完成接飞盘这个游戏,那么一定要让狗狗听懂咬和吐的口令.其实这个飞盘训练的过程就是一个人和狗狗一同游戏的过程.家长们需要做的就是让狗狗逐渐地增加兴趣,能够更好更快地完成咬 ...

  9. java程序设计基础_陈国君版第五版_第七章例题

    java程序设计基础_陈国君版第五版_第七章例题 class Cylinder {private double radius;private int height;private double pi ...

最新文章

  1. 深度丨《主算法》作者 Pedro Domingos 谈机器学习十大误解
  2. 我的日常学习笔记 18.05.08(Vue自定义事件)
  3. js 之 object
  4. exist not exist 分析
  5. 12.文件系统——磁盘管理之RAID概述
  6. 我的编码规范(慢慢补充)
  7. vi格式化代码,撤销,重做,回退操作
  8. 客户关系管理系统-CRM源码
  9. JavaSE(九)——正则表达式、Date类、集合、泛型
  10. java arraybound out_java – 获取ArrayIndexOutOfBound:1异常
  11. JS 调试(debug)
  12. (6)通过输入参数(测量数据)构建三维体模型
  13. struts2标签库的使用
  14. Win7提示1970-01-01 000000 is not a valid data怎么办.
  15. 嵌入式linux基础学习全套精品视频教程
  16. 设计配色灵感|热情甜蜜色系配色方案
  17. Linux EXT4文件系统简介
  18. 完美解决cannot import name ‘_validate_lengths‘ from ‘numpy.lib.arraypad‘错误
  19. expect巡检服务器_linux 巡检报告
  20. 蚁群算法求最值c语言实现,蚁群算法代码(求函数最值)

热门文章

  1. was6.1偶尔报错com.ibm.websphere.ce.cm.StaleConnectionException
  2. 华为MUX VLAN
  3. Logstash系列之--JAVA自定义插件
  4. 贪心算法:旅行商问题(TSP)
  5. 享誉全球的 Java 经典著作《Java核心技术》
  6. 【测试基础】Linux系统组成、目录结构及基本命令
  7. 发邮件怎么把附件内容直接显示_一年一度调剂忙,且看招生老师怎么说
  8. 帮你快速升职的六大方法http://career.eol.cn/mian_shi_4350/20080818/t20080818_317758.shtml
  9. 浙江计算机二级c语言上机题库及答案,计算机二级C语言上机题库及答案2017
  10. 深入理解并行编程原理与实践