java8-4 多态的练习以及题目
1、
/*
多态练习:猫狗案例
*/
1 class Animal { 2 public void eat(){ 3 System.out.println("吃饭"); 4 } 5 } 6 7 class Dog extends Animal { 8 public void eat() { 9 System.out.println("狗吃肉"); 10 } 11 12 public void lookDoor() { 13 System.out.println("狗看门"); 14 } 15 } 16 17 class Cat extends Animal { 18 public void eat() { 19 System.out.println("猫吃鱼"); 20 } 21 22 public void playGame() { 23 System.out.println("猫捉迷藏"); 24 } 25 } 26 27 class DuoTaiTest { 28 public static void main(String[] args) { 29 //定义为狗 30 Animal a = new Dog(); 31 a.eat(); 32 System.out.println("--------------"); 33 //还原成狗 34 Dog d = (Dog)a; 35 d.eat(); 36 d.lookDoor(); 37 System.out.println("--------------"); 38 //变成猫 39 a = new Cat(); 40 a.eat(); 41 System.out.println("--------------"); 42 //还原成猫 43 Cat c = (Cat)a; 44 c.eat(); 45 c.playGame(); 46 System.out.println("--------------"); 47 48 //演示错误的内容 49 //Dog dd = new Animal(); 50 //Dog ddd = new Cat(); 51 //ClassCastException 52 //Dog dd = (Dog)a; 53 } 54 }
2、不同地方饮食文化不同的案例
1 class Person { 2 public void eat() { 3 System.out.println("吃饭"); 4 } 5 } 6 7 class SouthPerson extends Person { 8 public void eat() { 9 System.out.println("炒菜,吃米饭"); 10 } 11 12 public void jingShang() { 13 System.out.println("经商"); 14 } 15 } 16 17 class NorthPerson extends Person { 18 public void eat() { 19 System.out.println("炖菜,吃馒头"); 20 } 21 22 public void yanJiu() { 23 System.out.println("研究"); 24 } 25 } 26 27 class DuoTaiTest2 { 28 public static void main(String[] args) { 29 //测试 30 //南方人 31 Person p = new SouthPerson(); 32 p.eat(); 33 System.out.println("-------------"); 34 SouthPerson sp = (SouthPerson)p; 35 sp.eat(); 36 sp.jingShang(); 37 System.out.println("-------------"); 38 39 //北方人 40 p = new NorthPerson(); 41 p.eat(); 42 System.out.println("-------------"); 43 NorthPerson np = (NorthPerson)p; 44 np.eat(); 45 np.yanJiu(); 46 } 47 }
题目:
1、看程序写结果:先判断有没有问题,如果没有,写出结果
1 class Fu { 2 public void show() { 3 System.out.println("fu show"); 4 } 5 } 6 7 class Zi extends Fu { 8 public void show() { 9 System.out.println("zi show"); 10 } 11 12 public void method() { 13 System.out.println("zi method"); 14 } 15 } 16 17 class DuoTaiTest3 { 18 public static void main(String[] args) { 19 Fu f = new Zi(); 20 f.method(); 21 f.show(); 22 } 23 }
答案是: 出错,f.method()这里出错,父类没有这个方法
2、看程序写结果:先判断有没有问题,如果没有,写出结果
1 class A { 2 public void show() { 3 show2(); 4 } 5 public void show2() { 6 System.out.println("我"); 7 } 8 } 9 class B extends A { 10 public void show2() { 11 System.out.println("爱"); 12 } 13 } 14 class C extends B { 15 public void show() { 16 super.show(); 17 } 18 public void show2() { 19 System.out.println("你"); 20 } 21 } 22 public class DuoTaiTest4 { 23 public static void main(String[] args) { 24 A a = new B(); 25 a.show(); 26 27 B b = new C(); 28 b.show(); 29 } 30 }
//答案是 爱你 。
public void show() {
show2();
} 默认在B类的show2前面
多态的成员访问特点:
方法:编译看左边,运行看右边。
继承的时候:
子类中有和父类中一样的方法,叫重写。
子类中没有父亲中出现过的方法,方法就被继承过来了。
转载于:https://www.cnblogs.com/LZL-student/p/5858811.html
java8-4 多态的练习以及题目相关推荐
- C++小型公司人员信息管理系统(多态)
C++小型公司人员信息管理系统(多态) 1.实验题目及要求 已有应用为: 某公司包含多种员工类型:技术员,产品经理,销售员.销售经理. 技术员 (包含工号(6位 :000001~ 999999).姓名 ...
- 解析java多态经典习题
解析java多态经典习题 1 题目一 1.1 题目内容 编写程序实现乐手弹奏乐器.乐手可以弹奏不同的乐器从 而发出不同的声音. 可以弹奏的乐器包括二胡.钢琴和琵琶. 实现思路及关键代码: ①定义乐器类 ...
- Java小知识点合集-面向对象
1关于Java中的值传递 关于Java中的值传递,其实就是存的是什么值,传出去就是什么值 基本数据类型中存的是具体的数值 引用数据类型中的存的是地址值 类变量的引用定义在栈中,而对象定义在堆中,其中是 ...
- 作业06-接口、内部类
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. ---: 2. 书面作业 1. clone方法 ...
- 学号:201621123032 《Java程序设计》第6周学习总结
1:本周学习总结 1.1: 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结 2:书面作业 2.1: clone方法 2.1.1 ...
- 201521123011《Java程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. XMind 2. 书面作业 1.clone方法 1.1 O ...
- 201621123079《java程序设计》第六周作业总结
作业06-接口.内部类 1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 2. 书面作业 1. c ...
- 201521123031 《Java程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...
- 201521123078 《Java程序设计》第6周学习总结
1. 本周学习总结 2. 书面作业 1.clone方法 1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么? 1.子类要实现Clone ...
最新文章
- windows 的系统命令介绍
- python读取文件多行内容-python 逐行读取文件的几种方法
- apache 编译安装php mysql_编译安装APACHE+PHP+MYSQL
- POJ - 1094 Sorting It All Out(拓扑排序+floyd传递闭包)
- 关于RabbitMQ集群分区的通知
- 将Infinispan版本映射为最低Java版本
- php中什么时候用传值,php中传值与传引用的区别。什么时候传值什么时候传引用?...
- 蓝桥杯 之 基础练习10:十进制转十六进制
- Kali Linux 网络扫描秘籍 翻译完成!
- 60-420-020-使用-存储过程-使用存储过程和函数插入大数据量
- 重学C---------第三节:求两个整数中的大者
- 前台MM手一抖,网络说抖它就抖!
- python设置tk退出_Tkinter退出按钮
- 《JSP实用教程(第2版)/耿祥义》错误之非必要导入包
- 乔布斯鲜为人知的私生活:低调、曾经多情
- 基于STM32指纹密码锁设计
- 英里 英尺 英寸的换算
- 【学习笔记】带你从0开始学习 01Trie
- JSX语法使用详解——终极版
- L. Spicy Restaurant
热门文章
- 05 HTML字符串转换成jQuery对象、绑定数据到元素上
- 有关struts2中用到 js 总结
- VIJOS1212 Way Selection
- [转][HTML]css属性
- 用js实现导航栏shoufang效果_【读者投稿】用Github+docsify,我花了半天就搭好了个人博客...
- 通过BAT、网易、京东产品经理的简历大概什么样?
- 云计算hcie贴吧_专业介绍|计算机网络技术
- 什么是初效过滤器_初效过滤器怎么样 初效过滤器特点介绍【详解】
- 【APICloud系列|32】iOS 上架去除Icon图像中的alpha通道或透明度
- 计算机考研数学基础知识点,2019计算机考研数学复习:打好基础是必须的啊喂!...