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

    1.object类及其方法 Java类的浅层克隆,深层克隆 2.克隆很难 3.明天学习java的继承,关键字

  2. JAVA学习线路:day14-网络编程

    心得: 我是一名正在自学的java的即将毕业的大学生 总结笔记是为了让自己更好的理解和加深印象.可能不是那么美观,自己可以看懂就好 所有的文档和源代码都开源在GitHub: https://githu ...

  3. 已经编译安装的nginx/tenginx编译增加新模块

    只适用于自行编译安装的nginx配置 业务变更带来的Nginx增加模块需求 由于业务从php转为go开发,需要用到Http2的协议.这种协议在Nginx上需要http_v2_module这个模块的支持 ...

  4. SQL service 数据插入

    目的:实现对数据库XDSA中表S72.C72.SC72的数据插入 1.构建数据库 2.构建表 3.插入数据 插入数据语句: ① 命令: INSERT INTO TableNameVALUES('值', ...

  5. Unbuntu 18.04 LTS 环境下Python安装GDAL组件

    Unbuntu 18.04 LTS 环境下Python安装GDAL组件 // 非必要 sudo add-apt-repository ppa:ubuntugis/ppa sudo apt-get up ...

  6. XDG0062 XAML 与XDG0008 XAML 错误的解决办法

    昨天在使用wpf开发系统的时候,突然出现了错误(其实也不能称为错误,就是打开XAML文件时,在解决方案管理器中出现错误提示,XAML编辑文档出现波浪线的提示 The XAML designer dis ...

  7. .NET 5 中的隐藏特性

    前言 双十一当天 .NET 5 正式发布带来了很多的新特性和改进,个人觉得非常香,并且花了 10 分钟时间就把自己的 4 个 .NET Core 3.1 的项目升级到了 .NET 5,堪称无痛. 但是 ...

  8. http 怎样关闭

    如何优雅的关闭关闭这个fd , 如果只是一个简单的fd 直接调用close 就行, 但是如果要是一个框架 那就接到 资源回收复用 内存泄漏等问题: 来看看 ngx 是用怎样的思路处理 事务结束动作: ...

  9. centos 7.6 虚拟机开启网卡

    1.    2. > cd /etc/sysconfig/network-scripts 3. > vi ifcfg-enp0s3 上图标红区域,默认值是:no,改为yes:保存. 4. ...

  10. SQL Server 数据库开启日志CDC记录,导致SQL Server 数据库日志异常增大

    这几天单位的SQL Server业务数据生产库出现数据库日志增长迅速,导致最终数据无法写入数据库,业务系统提示"数据库事务日志已满",经过多方咨询和请教,终于将日志异常的数据库处理 ...