1. 1 package pet_2;
  2. 2
  3. 3 public abstract class Pet {
  4. 4 private String name;
  5. 5
  6. 6 public String getName() {
  7. 7 return name;
  8. 8 }
  9. 9
  10. 10 public void setName(String name) {
  11. 11 this.name = name;
  12. 12 }
  13. 13 public abstract void eat();
  14. 14 }
  15. 15
  16. 16 package pet_2;
  17. 17
  18. 18 public class Cat extends Pet {
  19. 19 public void eat() {
  20. 20 System.out.println("吃鱼");
  21. 21 }
  22. 22 }
  23. 23
  24. 24 package pet_2;
  25. 25
  26. 26 public class Dog extends Pet {
  27. 27 public void eat() {
  28. 28 System.out.println("吃狗粮");
  29. 29 }
  30. 30
  31. 31 }
  32. 32
  33. 33 package pet_2;
  34. 34
  35. 35 public class Master {
  36. 36 //Pet pet=外界传入的实参
  37. 37 public void feed(Pet pet) {
  38. 38 System.out.println("喂"+pet.getName());
  39. 39 pet.eat();
  40. 40 }
  41. 41 }
  42. 42
  43. 43 package pet_2;
  44. 44
  45. 45 public class Mastertest {
  46. 46
  47. 47 public static void main(String[] args) {
  48. 48 Master master=new Master();
  49. 49 Pet dog =new Dog();
  50. 50 dog.setName("旺财");
  51. 51 master.feed(dog);
  52. 52 Pet cat=new Cat();
  53. 53 cat.setName("小花");
  54. 54 master.feed(cat);
  55. 55 }
  56. 56
  57. 57 }
  58. 58
  59. 59 package pet_2;
  60. 60
  61. 61 public class Master {
  62. 62 //Pet pet=外界传入的实参
  63. 63 public void feed(Pet pet) {
  64. 64 System.out.println("喂"+pet.getName());
  65. 65 pet.eat();
  66. 66 }
  67. 67 public static Pet getPet(int typeid) {//静态方法可以直接类名调用,无需实例化一个对象
  68. 68 Pet pet=null;
  69. 69 if(typeid==1) {
  70. 70 pet=new Cat();//or Cat cat=new Cat();
  71. 71 }else if(typeid==2) {
  72. 72 Dog dog=new Dog();
  73. 73 pet=dog;
  74. 74 }
  75. 75
  76. 76 return pet;
  77. 77 }
  78. 78 }
  79. 79
  80. 80
  81. 81
  82. 82 package pet_2;
  83. 83
  84. 84 public class Mastertest {
  85. 85
  86. 86 public static void main(String[] args) {
  87. 87 Master master=new Master();
  88. 88 //Pet dog =new Dog();
  89. 89 Pet dog=Master.getPet(2);
  90. 90 dog.setName("旺财");
  91. 91 master.feed(dog);
  92. 92 //Pet cat=new Cat();
  93. 93 Pet cat=Master.getPet(1);
  94. 94 cat.setName("小花");
  95. 95 master.feed(cat);
  96. 96 }
  97. 97
  98. 98 }

java抽象类,多态1的更多相关文章

  1. Java中多态、抽象类和接口

    1:final关键字(掌握) (1)是最终的意思,可以修饰类,方法,变量. (2)特点: A:它修饰的类,不能被继承. B:它修饰的方法,不能被重写. C:它修饰的变量,是一个常量. (3)面试相关: ...

  2. java继承多态和抽象类接口

    一.继承 通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类.已有的称为父类,新的类称为子类(父类派生子类,子类继承父类).(1)继承的优点:    ①代码的可重用性:    ②父类的属性 ...

  3. java抽象类、多态、接口

    抽象类 抽象类的产生 当编写一个类时,我们往往会为该类定义一些方法,这些方法是用来描述该类的功能具体实现方式,那么这些方法都有具体的方法体. 但是有的时候,某个父类只是知道子类应该包含怎么样的方法,但 ...

  4. 记录:JAVA抽象类、接口、多态

    JAVA抽象类.接口.多态 1. 多态 定义 多态是同一个行为具有多个不同表现形式或形态的能力.(多态就是同一个接口,使用不同的实例而执行不同操作) 如何实现多态 继承和接口 父类和接口类型的变量赋值 ...

  5. Java抽象类、继承及多态和适配器的实现

    Java继承 方法重写是Java语言多态的特性,必须满足以下条件 在子类中,方法名称与父类方法名称完全相同 方法的参数个数和类型完全相同,返回类型完全相同 方法的访问修饰符访问级别不低于父类同名方法的 ...

  6. 深入Java核心 Java中多态的实现机制(1)

    在疯狂java中,多态是这样解释的: 多态:相同类型的变量,调用同一个方法时,呈现出多中不同的行为特征, 这就是多态. 加上下面的解释:(多态四小类:强制的,重载的,参数的和包含的) 同时, 还用人这 ...

  7. 个人对Java中多态的一些简单理解

    什么是多态 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 多态的定义:指允许不同类的对象对同一消息做出响应.即同一 ...

  8. Java中多态的一些简单理解

    什么是多态 .面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. .多态的定义:指允许不同类的对象对同一消息做出响应.即 ...

  9. IEnumerator<TItem>和IEnumerator Java 抽象类和普通类、接口的区别——看完你就顿悟了

    IEnumerable 其原型至少可以说有15年历史,或者更长,它是通过 IEnumerator 来定义的,而后者中使用装箱的 object 方式来定义,也就是弱类型的.弱类型不但会有性能问题,最主要 ...

随机推荐

  1. 关于eslint的使用与配置,以及prettier的使用

    eslint官网:https://eslint.bootcss.com/docs/user-guide/getting-started eslint配置:http://eslint.cn/docs/r ...

  2. 4G DTU的数据透传功能如何实现

    准备将众山科技4G DTU进行数据透传之前,先将电脑串口连接到4G DTU串口上.如果是没有硬件串口的电脑,可以通过USB转RS232串口转换线进行连接. 连接成功后,按照说明书中提供的初始参数进行设 ...

  3. Java Web中解决乱码的方式

    Java Web中解决乱码的方式 方式一:添加编码过滤器 package com.itmacy.dev.filter; import javax.servlet.*; import javax.ser ...

  4. K8s之实践Pod深入理解

      K8s之实践Pod深入理解 1.同一pod下的nginx+php+mysql nginx+php+mysql.yaml文件 --- apiVersion: v1 kind: Secret meta ...

  5. 适合 C++ 新手学习的开源项目——在 GitHub 学编程

    作者:HelloGitHub-小鱼干 俗话说:万事开头难,学习编程也是一样.在 HelloGitHub 的群里,经常遇到有小伙伴询问编程语言如何入门方面的问题,如: 我要学习某一门编程语言,有什么开源 ...

  6. 「SHOI2014」三叉神经树

    「SHOI2014」三叉神经树 给你一颗由\(n\)个非叶子结点和\(2n+1\)个叶子结点构成的完全三叉树,每个叶子结点有一个输出:\(0\)或\(1\),每个非叶子结点的输出为自己的叶子结点中较多 ...

  7. 分布式文档存储数据库之MongoDB索引管理

    前文我们聊到了MongoDB的简介.安装和对collection的CRUD操作,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13941797.html:今天我 ...

  8. ORA-00020: maximum number of processes (40) exceeded模拟会话连接数满

    问题描述:在正式生产环境中,有的库建的process和session连接数目设置的较小,导致后期满了无法连接.因为正式库无法进行停库修改,只能释放连接,做个测试模拟 1. 修改现有最大会话与进程连接数 ...

  9. 【JVM第八篇--垃圾回收】GC和GC算法

    写在前面的话:本文是在观看尚硅谷JVM教程后,整理的学习笔记.其观看地址如下:尚硅谷2020最新版宋红康JVM教程 1.垃圾 1.1.什么是垃圾 垃圾(Garbage)在Java语言中是指在运行程序中 ...

  10. 性能工具-io工具

    I/O:某网上问题通过top  iotop pidstat vmstat 工具定位出io高原因,内存不够.