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 方式来定义,也就是弱类型的.弱类型不但会有性能问题,最主要 ...
随机推荐
- 吐槽一下Abp的用户和租户管理模块
1. 背景 ASP.NET Core 基于声明的访问控制到底是什么鬼? 聊到基于声明的身份认证将 身份和签发机构分离,应用程序信任签发机构,故认可签发的身份信息. -- --- --- --- Cla ...
- 01 . Go之Gin+Vue开发一个线上外卖应用
项目介绍 我们将开始使用Gin框架开发一个api项目,我们起名为:云餐厅.如同饿了么,美团外卖等生活服务类应用一样,云餐厅是一个线上的外卖应用,应用的用户可以在线浏览商家,商品并下单. 该项目分为客户 ...
- Java Arrays 和 List的相互转化
最近在 leetcode 刷题的时候遇到过好几次这样的情况:需要返回的数据类型是数组(Arrays),但是求解的时候并不知道数组的长度,这时候就需要先用 List 进行临时存储,最后再转化为 Arra ...
- curl 錯誤碼
CURL状态码列表 状态码 状态原因 解释 0 正常访问 1 错误的协议 未支持的协议.此版cURL 不支持这一协议. 2 初始化代码失败 初始化失败. 3 URL格式不正确 URL 格式错误.语法不 ...
- 修改redo log 的大小
alert日志中含有大量警告信息:"Thread 1 cannot allocate new log, sequence 320xx Checkpoint not complete" ...
- 子线程调用invalidate()产生“Only the original thread that created a view hierarchy can touch its views.”原因分析
目录 1.异常出处 2.从View.invalidate()方法开始分析 3.ViewRootImpl如何与View进行关联:从Activity的setContentView开始分析 3.1 最顶层的 ...
- 对ESP8266的例子进行编译时报错check_python_dependencies的问题的解决
尝试对ESP8266的例子进行编译时报错: make: *** 没有规则可制作目标"check_python_dependencies" 解决方法: 1.安装python pip包 ...
- Spider_实践_beautifulsoup静态网页爬取所有网页链接
# 获取百度网站首页上的所有a标签里的 href属性值: # import requests # from bs4 import BeautifulSoup # # html = requests.g ...
- 我发现了一个特别Man的Linux工具!!!
Linux命令不用我多说吧,谁还不会几个?但是一个命令可能有几十种用法,就拿最简单也是最常用的ls来举例,它就有将近20种options用法 比如 ls -a :现实所有文件及其隐藏文件 ls -t ...
- fork 子进程,父进程对于变量的共享
经过代码的练习发现: fork创建的子进程会完全复制父进程的代码包括变量,既复制fork之前创建的变量. 但是在创建子进程后,子进程与父进程对同一个变量的改变将相互不受影响,即使获取同一变量的地址是一 ...