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 多态的练习以及题目相关推荐

  1. C++小型公司人员信息管理系统(多态)

    C++小型公司人员信息管理系统(多态) 1.实验题目及要求 已有应用为: 某公司包含多种员工类型:技术员,产品经理,销售员.销售经理. 技术员 (包含工号(6位 :000001~ 999999).姓名 ...

  2. 解析java多态经典习题

    解析java多态经典习题 1 题目一 1.1 题目内容 编写程序实现乐手弹奏乐器.乐手可以弹奏不同的乐器从 而发出不同的声音. 可以弹奏的乐器包括二胡.钢琴和琵琶. 实现思路及关键代码: ①定义乐器类 ...

  3. Java小知识点合集-面向对象

    1关于Java中的值传递 关于Java中的值传递,其实就是存的是什么值,传出去就是什么值 基本数据类型中存的是具体的数值 引用数据类型中的存的是地址值 类变量的引用定义在栈中,而对象定义在堆中,其中是 ...

  4. 作业06-接口、内部类

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. ---: 2. 书面作业 1. clone方法 ...

  5. 学号:201621123032 《Java程序设计》第6周学习总结

    1:本周学习总结 1.1: 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结 2:书面作业 2.1: clone方法 2.1.1 ...

  6. 201521123011《Java程序设计》第6周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. XMind 2. 书面作业 1.clone方法 1.1 O ...

  7. 201621123079《java程序设计》第六周作业总结

    作业06-接口.内部类 1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 2. 书面作业 1. c ...

  8. 201521123031 《Java程序设计》第6周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...

  9. 201521123078 《Java程序设计》第6周学习总结

    1. 本周学习总结 2. 书面作业 1.clone方法 1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么? 1.子类要实现Clone ...

最新文章

  1. windows 的系统命令介绍
  2. python读取文件多行内容-python 逐行读取文件的几种方法
  3. apache 编译安装php mysql_编译安装APACHE+PHP+MYSQL
  4. POJ - 1094 Sorting It All Out(拓扑排序+floyd传递闭包)
  5. 关于RabbitMQ集群分区的通知
  6. 将Infinispan版本映射为最低Java版本
  7. php中什么时候用传值,php中传值与传引用的区别。什么时候传值什么时候传引用?...
  8. 蓝桥杯 之 基础练习10:十进制转十六进制
  9. Kali Linux 网络扫描秘籍 翻译完成!
  10. 60-420-020-使用-存储过程-使用存储过程和函数插入大数据量
  11. 重学C---------第三节:求两个整数中的大者
  12. 前台MM手一抖,网络说抖它就抖!
  13. python设置tk退出_Tkinter退出按钮
  14. 《JSP实用教程(第2版)/耿祥义》错误之非必要导入包
  15. 乔布斯鲜为人知的私生活:低调、曾经多情
  16. 基于STM32指纹密码锁设计
  17. 英里 英尺 英寸的换算
  18. 【学习笔记】带你从0开始学习 01Trie
  19. JSX语法使用详解——终极版
  20. L. Spicy Restaurant

热门文章

  1. 05 HTML字符串转换成jQuery对象、绑定数据到元素上
  2. 有关struts2中用到 js 总结
  3. VIJOS1212 Way Selection
  4. [转][HTML]css属性
  5. 用js实现导航栏shoufang效果_【读者投稿】用Github+docsify,我花了半天就搭好了个人博客...
  6. 通过BAT、网易、京东产品经理的简历大概什么样?
  7. 云计算hcie贴吧_专业介绍|计算机网络技术
  8. 什么是初效过滤器_初效过滤器怎么样 初效过滤器特点介绍【详解】
  9. 【APICloud系列|32】iOS 上架去除Icon图像中的alpha通道或透明度
  10. 计算机考研数学基础知识点,2019计算机考研数学复习:打好基础是必须的啊喂!...