1.   上转型对象的定义是什么?阐述自己对上转型对象的理解,用文字描述。

上转型:父类声明,子类实例化 叫做上转型。

(自己的理解)上转型对象可以利用父类中的全员变量和方法,当子类进行全员变量隐藏或方法重写时,则用的是子类中的。上转型对象不能用子类新增加的方法或变量。(强制转换)

u (PPT的说法)1.上转对象不能操作子类新增的成员变量,失掉了这部分属性,不能使用子类新增的方法,失掉了一些功能。

u 2.上转型对象可以操作子类继承的成员变量,也可以使用子类继承的或重写的方法。

u 3.如果子类重写了父类的某个方法后,当对象的上转型对象调用这个方法时一定是调用了子类重写的方法。因为程序在运行时知道,这个上转对象的实例是子类创建的,只不过损失了一些功能而已。

2. 多选题:

(1)下列关于父类与子类的说法错误的有(    BCD)

A.在任何情况下,子类对象都可以访问父类的受保护方法。

B.上转型对象调用的是父类中的方法。

C.子类对象不能直接调用被子类重写的父类中的方法。

D.上转型对象可以调用子类新增的方法。

2.   创建一个抽象类水果Fruit,再分别创建Apple、Pear、Orange类继承抽象类水果,分别在3个子类中定义成员变量和方法,然后再创建一个测试类Test,根据用户的输入,利用上转型对象分别实例化不同的子类,表现多态的性质。

3.  package Homework09_java;

4.  /**

5.   * 创建一个水果类做对象

6.   * @author LENOVO

7.   *

8.   */

9.  public class Fruit {

10. String color="橙色";

11. String size;

12. String name;

13.

14. public void name()

15. {System.out.println(this.name+" ");}

16. public void eating()

17. {System.out.println("直接吃 ");}

18. public void juice()

19. {System.out.println("做果汁 ");

20. }

21.

22.

23. }

24. package Homework09_java;

25. //创建一个苹果类

26. public class Apple extends Fruit {

27. String name="苹果";

28. String size="圆形";

29. String color="红色";

30.

31.

32. public void eating()

33. {System.out.println("削皮吃");}

34.

35.

36. }

37. package Homework09_java;

38. //创建一个梨类

39. public class Pear extends Fruit  {

40. String name="梨";

41. String color="黄色";

42. String size="梨形";

43. public void eating()

44. {

45.      System.out.println("洗洗吃");

46.

47.

48. }

49.

50.

51. }

52. package Homework09_java;

53. //创建一个橘子类

54. public class Orange extends Fruit{

55. String name="橘子";

56. String size="圆形";

57.

58.  public void eating()

59. {System.out.println("剥皮吃");}

60.  public void eating(Fruit a)

61.  {a.eating();}

62.  public void juice(Fruit a)

63.  {a.juice();}

64.  public void color(Fruit a)

65.  {System.out.println(""+a.color);}

66.  public void size(Fruit a)

67.  {System.out.println(""+a.size);}

68.

69. }

70. package Homework09_java;

71. import java.util.Scanner;

72. public class Test {

73. public static void main(String[] args)

74. {Scanner scanner=new Scanner(System.in);

75.      System.out.println("请输入一种水果");

76.      String name1=scanner.next();

77.      Test test=new Test();

78.      Fruit apple=new Apple();

79.      Fruit pear=new Pear();

80.      Fruit orange=new Orange();

81.      String fruit_01="苹果";

82.      String fruit_02="梨";

83.      String fruit_03="橘子";

84.      if(name1.equals(fruit_01))

85.      {test.color(apple);

86.      {test.size(apple);

87.      {test.juice(apple);

88.      test.eating(apple);

89.

90.      if(name1.equals(fruit_02))

91.      {test.color(pear);

92.      {test.size(pear);

93.      {test.juice(pear);

94.      test.eating(pear);

95.

96.      if(name1.equals(fruit_03))

97.      {test.color(orange);

98.      {test.size(orange);

99.      {test.juice(orange);

100.              test.eating(orange);

101.

102.              }

103.

104.

105.

106.              }

107.

108.

109.

110.

111.          }

112.      }

(上程序有问题,请求救援!!)

4. 猜数字游戏。随机产生一个1—100的整数,让用户去猜,猜大了(或者猜小了)都有提示;直到用户猜对,提示成功,程序结束。

package Homework09_java;

import java.util.Scanner;

import java.util.Random;

public class GuessNumber {

public static void main(String[] args)

{Random rand=new Random();

int number=rand.nextInt(100);

Scanner scanner=new Scanner(System.in);

System.out.println("请输入一个值:");

while(true)

{int data=scanner.nextInt();

//用户输入的值

if (data>number)

{System.out.println("大了,请继续输入");

continue;}

if (data<number)

{System.out.println("小了,请继续输入");

continue;}

if (data==number)

{System.out.println("成功");

break;}

}

}

}

5. 一个正整数,如果恰好等于除它本身外的所有因子之和,这个数就称为“完数”。

例如6=1+2+3,编程找出1000以内的所有完数。

package Homework09_java;

public class Wanshu

{   void wanshu ()

{   int i,j,s=0;

for (i=1;i<=1000;i++)

{for (j=1;j<i;j++)

{if (i%j==0)

{s+=j;}

if (s==i)

System.out.println(i+"\t");

}

}

}

}

package Homework09_java;

public class Main {

public static void main(String[] args)

{Wanshu ws=new Wanshu();

ws.wanshu();

}

}

6. 输出所有水仙花数(如果一个3位正整数的各个位数立方和等于这个数本身,称为水仙花数)。

package Homework09_java01;

public class DaffodilNumber {

public void main()

{int num,i,a,b,c;
for (i=100;i<1000;i++)
{num=i;
a=num%10;
num=num/10;

b=num%10;
num=num/10;

c=num%10;
if ((a*a*a+b*b*b+c*c*c)==i)
{
System.out.println(i  );
}

}

}

}

package Homework09_java01;

public class Main {
public static void main(String [] args)
{DaffodilNumber dn=new DaffodilNumber();
dn.main();

}

}

Java lesson09Homework的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  3. Elasticsearch之java的基本操作一

    摘要   接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...

  4. 论:开发者信仰之“天下IT是一家“(Java .NET篇)

    比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...

  5. 故障重现, JAVA进程内存不够时突然挂掉模拟

    背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...

  6. 死磕内存篇 --- JAVA进程和linux内存间的大小关系

    运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...

  7. 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用

    有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...

  8. Java多线程基础学习(二)

    9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...

  9. Java多线程基础学习(一)

    1. 创建线程    1.1 通过构造函数:public Thread(Runnable target, String name){}  或:public Thread(Runnable target ...

随机推荐

  1. python中文显示乱码,已经在开头有了coding: utf-8

    乱码原因:因为你的文件声明为 utf-8,并且也应该是用 utf-8 的编码保存的源文件.但是 windows 的本地默认编码是 cp936,也就是 gbk 编码,所以在控制台直接打印 utf-8 的 ...

  2. Vagrant 如何调整虚拟机的内存大小?

    https://docs.vagrantup.com/v2/virtualbox/configuration.html 最下面 config.vm.provider "virtualbox& ...

  3. C# Under the Hood: async/await (Marko Papic)

    https://www.markopapic.com/csharp-under-the-hood-async-await/ Async and await keywords came with C# ...

  4. SQL-W3School-高级:SQL CHECK 约束

    ylbtech-SQL-W3School-高级:SQL CHECK 约束 1.返回顶部 1. SQL CHECK 约束 CHECK 约束用于限制列中的值的范围. 如果对单个列定义 CHECK 约束,那 ...

  5. SEO优化篇——meta用法

    一.语法:<meta name="name" content="string"> 二.参数解析:1)name选项:Keywords(关键字),des ...

  6. 08ListView动态列表组件 以及循环动态数据

    效果: main.dart import 'package:flutter/material.dart'; import 'res/listData.dart'; /* ListView:参数 scr ...

  7. LeetCode_9. Palindrome Number

    9. Palindrome Number Easy Determine whether an integer is a palindrome. An integer is a palindrome w ...

  8. django项目添加路由----返回给客户端内容-----windows中的python

    django项目添加路由 url函数的第一个参数是匹配url路径的正则表达式,第2个参数是路由函数 第一个正则表达式是r'^$',其中r表示正则表达式字符串不对转义符进行转义.“^”表示匹配URL路径 ...

  9. Clonezilla克隆还原系统

    简介 Clonezilla是一个专门用来克隆磁盘驱动器的Linux发行版.它可以操作任何你所能想象到的文件系统类型.Clonezilla有两种版本:Live和SE.Live版本与Ubuntu的Live ...

  10. mac 查看隐藏文件及快速打开终端

    查看隐藏文件: 1.在目标目录打开终端,然后输入ls -al命令快速查看目标目录下的文件(包括隐藏文件) 2.快捷键shift+cmmand+.(显示或者隐藏) 打开终端方式: 1.设置组合快捷键,单 ...