java抽象类,多态1
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的更多相关文章
- Java中多态、抽象类和接口
1:final关键字(掌握) (1)是最终的意思,可以修饰类,方法,变量. (2)特点: A:它修饰的类,不能被继承. B:它修饰的方法,不能被重写. C:它修饰的变量,是一个常量. (3)面试相关: ...
- java继承多态和抽象类接口
一.继承 通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类.已有的称为父类,新的类称为子类(父类派生子类,子类继承父类).(1)继承的优点: ①代码的可重用性: ②父类的属性 ...
- java抽象类、多态、接口
抽象类 抽象类的产生 当编写一个类时,我们往往会为该类定义一些方法,这些方法是用来描述该类的功能具体实现方式,那么这些方法都有具体的方法体. 但是有的时候,某个父类只是知道子类应该包含怎么样的方法,但 ...
- 记录:JAVA抽象类、接口、多态
JAVA抽象类.接口.多态 1. 多态 定义 多态是同一个行为具有多个不同表现形式或形态的能力.(多态就是同一个接口,使用不同的实例而执行不同操作) 如何实现多态 继承和接口 父类和接口类型的变量赋值 ...
- Java抽象类、继承及多态和适配器的实现
Java继承 方法重写是Java语言多态的特性,必须满足以下条件 在子类中,方法名称与父类方法名称完全相同 方法的参数个数和类型完全相同,返回类型完全相同 方法的访问修饰符访问级别不低于父类同名方法的 ...
- 深入Java核心 Java中多态的实现机制(1)
在疯狂java中,多态是这样解释的: 多态:相同类型的变量,调用同一个方法时,呈现出多中不同的行为特征, 这就是多态. 加上下面的解释:(多态四小类:强制的,重载的,参数的和包含的) 同时, 还用人这 ...
- 个人对Java中多态的一些简单理解
什么是多态 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 多态的定义:指允许不同类的对象对同一消息做出响应.即同一 ...
- Java中多态的一些简单理解
什么是多态 .面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. .多态的定义:指允许不同类的对象对同一消息做出响应.即 ...
- IEnumerator<TItem>和IEnumerator Java 抽象类和普通类、接口的区别——看完你就顿悟了
IEnumerable 其原型至少可以说有15年历史,或者更长,它是通过 IEnumerator 来定义的,而后者中使用装箱的 object 方式来定义,也就是弱类型的.弱类型不但会有性能问题,最主要 ...
随机推荐
- 关于查看本机ssh公钥以及生成公钥
1.查看本机公钥: 打开git bush,执行 cd ~/.ssh 进入.ssh文件夹(C:\Users\Administrator\.ssh) 执行 ls 命令,查看列表 执行 cat id ...
- kong in kubernetes
网关 这里提到的网关特指API网关.API网关是在微服务架构的演进过程中产生的,其核心功能是聚合后端服务,为客户端调用提供统一的门户.由于网关的集中式管理,在其上又衍生了限流.负载.路由管理.安全防护 ...
- 关于LoRa安全联盟的六大常见问题
LoRaWAN的安全机制在哪里指定? 所有安全机制都在LULA联盟规范中指定,可以由公众下载. LoRa联盟规范如何保证LoRaWAN网络的安全操作? LoRaWAN支持来源认证.完整的媒体访问控制( ...
- Docker(7)- docker images 命令详解
如果你还想从头学起 Docker,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1870863.html 作用 列出所有的本地镜像 语法格 ...
- 矩阵连乘问题的算法复杂度的计算--卡塔兰数(Catalan数)的数学推导和近似公式
author: cust-- ZKe --------------------- 这里以连乘积加括号问题为背景: 由于矩阵的乘积满足结合律,且矩阵乘积必须满足左边矩阵的列数的等于右边矩阵的行数,不同的 ...
- c#习题之2
string str = null; Console.WriteLine("请输入一个字符串"); str = Console.ReadLine(); char[] c = new ...
- 利用sklearn实现k-means
基于上面的一篇博客k-means利用sklearn实现k-means #!/usr/bin/env python # coding: utf-8 # In[1]: import numpy as np ...
- boston.csv 完整版 508个数据集
https://pan.baidu.com/s/1C1Llx8cTu5xBdK9GuDZ11A 提取码:u6cm
- 简单STL
string: string s="5418340"; sort(s.begin(),s.end()); cout<<s; /**begin是头迭代器,end是尾迭代器 ...
- 企业网络拓扑MSTP功能实例(二)
组网图形 MSTP简介 以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路.但是使用冗余链路会在交换网络上产生环路,引发广播风暴以及MAC地址表不稳定等故障现象,从而导致用户通信质量 ...