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. Memcached与Memcache区别

    在写这篇文章之前一直对memcache .memcached模糊,相差一个字母,特此总结下: Memcache是什么? Memcache是一个自由和开放源代码.高性能.分配的内存对象缓存系统.用于加速 ...

  2. 【Java/MySql】使用JDBC访问MySql数据库的Maven工程

    下载链接:https://files.cnblogs.com/files/xiandedanteng/FindNotnullColumns20191102-1.rar pom.xml里写: <p ...

  3. 五一 DAY 5

    五一  DAY 5 V  点  1----n E  边 /* Given a graph with N nodes and M unidirectional edges. Each edge e_i ...

  4. IP拨号器

    是一个最终的接收者 package com.example.ip; import android.content.BroadcastReceiver; import android.content.C ...

  5. java.util.concurrent.DelayQueue 源码学习

    jdk1.8 DelayQueue,带有延迟元素的线程安全队列,当非阻塞从队列中获取元素时,返回最早达到延迟时间的元素,或空(没有元素达到延迟时间).DelayQueue的泛型参数需要实现Delaye ...

  6. Spring事务管理4-----声明式事务管理(2)

    声明式事务管理  基于AspectJ的 XML 方式配置 通过对事务管理器TransactionManager配置通知(增强),然后再配置切点和切面,详细见applicationContext.xml ...

  7. BAPI_GOODSMVT_CREATE物料凭证增强字段

    项目MSEG 的 BAPI 表增强结构  BAPI_TE_XMSEG 抬头MKPF 的 BAIP 表增强 BAPI_TE_XMKPF 1. 在结构BAPI_TE_XMSEG中appending str ...

  8. 【error】 for i in range(len(shape)/2): TypeError: 'float' object cannot be interpreted as an integer

    Q: for i in range(len(shape)/2):TypeError: 'float' object cannot be interpreted as an integer A: for ...

  9. ThreadLocal的简单介绍

    ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路.使用这个工具类可以很简洁地 ...

  10. 为 Exchange 2010 用户添加联系人头像

    一.修改AD架构 为了给联系人添加头像,实际是让联系人头像缩略图能够显示在全局地址列表 GAL 中,需要让其在全局编录(GC)中进行复制,默认情况下,对象的“thumbnailphoto”属性值不会在 ...