zoukankan      html  css  js  c++  java
  • day12作业-----------------Java面向对象--JavaObject02-3

    作业

    1. 结合多态发生的条件,及继承相关知识,自己总结并验证下,哪些方法无法实现多态效果。

    2. 自己定义一个类,类中定义3个成员变量,这3个成员变量都被final修饰,
    请用3种不同方式,为这3个被final修饰的成员变量赋值。

    3. 实现如下多态案例,分别定义Person类,SouthPerson(表示南方人),NorthPerson(表示北方人)

    Person
    eat()

    SouthPerson
    eat()

    NorthPerson
    eat()

    写代码实现,eat方法的多态效果

    1:人要吃饭
    2:南方人吃炒菜和米饭
    3:北方人吃烩菜和馒头

     

    参考答案:

    1.

     1 package com.day012;
     2 /*
     3  * 1.  结合多态发生的条件,及继承相关知识,自己总结并验证下,哪些方法无法实现多态效果。
     4  
     5  答案:
     6  1. 考虑到多态发生的条件是,
     7    1.继承
     8    2.方法覆盖
     9    3.父类引用指向子类实例
    10 所以哪些方法(行为),实现不了多态效果呢?不能在子类中被覆盖的方法
    11 a. 父类中的private方法(不能被子类覆盖)
    12 b. 父类中的构造方法(不能被子类继承)
    13 c. 父类中的静态方法(不能被子类覆盖)
    14 d. 父类中被final修饰的方法(不能被子类覆盖)
    15 
    16  
    17  */
    18 public class Demo1 {
    19 
    20 }

    2.

     1 package com.day012;
     2 /*
     3  * 2. 自己定义一个类,类中定义3个成员变量,这3个成员变量都被final修饰,
     4    请用3种不同方式,为这3个被final修饰的成员变量赋值。
     5 
     6  */
     7 public class Demo2 {
     8     public static void main(String[] args) {
     9         A nameA = new A();
    10         System.out.println("a = "+nameA.a );
    11         System.out.println("b = "+nameA.b );
    12         System.out.println("c = "+nameA.c );
    13     }
    14 }
    15 class A{
    16     //1.在类体中定义成员变量时为 a 赋值(初始化语句)
    17     final int a = 1;
    18     final int b;
    19     final int c;
    20     //2.在构造代码块中为 b 赋值
    21     {
    22         b = 2;
    23     }
    24     //3.在构造方法中为 c 赋值。注意:要在所有的构造方法中都为 c 赋值。
    25     public A() {
    26         this.c = 3;
    27     }
    28 }

    运行结果:

    3.

     

     1 package com.day012;
     2 /*
     3  * 3. 实现如下多态案例,分别定义Person类,SouthPerson(表示南方人),NorthPerson(表示北方人)
     4 Person
     5   eat()
     6 
     7 SouthPerson
     8    eat()
     9 
    10 NorthPerson
    11    eat()
    12 
    13 写代码实现,eat方法的多态效果
    14 1:人要吃饭
    15 2:南方人吃炒菜和米饭
    16 3:北方人吃烩菜和馒头
    17  */
    18 public class Demo3 {
    19     public static void main(String[] args) {
    20         Person person = new Person();
    21         polymorphism(person);//1:人要吃饭
    22         person = new SouthPerson();
    23         polymorphism(person);//2:南方人吃炒菜和米饭
    24         person = new NorthPerson();
    25         polymorphism(person);//3:北方人吃烩菜和馒头
    26     }
    27     
    28     public static void polymorphism(Person person) {
    29         person.eat();
    30     }
    31 }
    32 
    33 class Person{
    34     public void eat() {
    35         System.out.println("1:人要吃饭");
    36     }
    37 }
    38 //南方人
    39 class SouthPerson extends Person{
    40     public void eat() {
    41         System.out.println("2:南方人吃炒菜和米饭");
    42     }
    43 }
    44 //北方人
    45 class NorthPerson extends Person{
    46     public void eat() {
    47         System.out.println("3:北方人吃烩菜和馒头");
    48     }
    49 }

    运行结果:

  • 相关阅读:
    【好文翻译】10个免费的压力测试工具(Web)
    【高手介绍】谷歌内部代码审查(code review)介绍[翻译]
    【淘宝内部好文转发】我们每天面对的互联网用户到底在想什么?
    写给开发者:别让他人用你的App赚钱[转]
    新手应该知道的二十三条关于JavaScript的最佳实践
    开发人员应该为这样的代码感到惭愧
    [Web App]必胜客宅急送产品设计思路介绍[转]
    WallsEveryDay 必应桌面壁纸
    GroupLayout 布局
    JButton 做图片框
  • 原文地址:https://www.cnblogs.com/dust2017/p/12731955.html
Copyright © 2011-2022 走看看