zoukankan      html  css  js  c++  java
  • 第七章-复用类-继承语法-1

    练习2: 从Detergent 中 继承产生一个新的类。覆盖scrub() 并添加一个名为sterilize() 的新的方法。

    一:我的答案:

     1 package com.learnJava.test;
     2 
     3 /**
     4  * @Author zhuchangli
     5  * @Date 2019/9/14
     6  **/
     7 class Cleanser{
     8     private String s = "Cleanser";
     9     public void append(String a) { s += a; }
    10     public void dilute(){ append("dilute()"); }
    11     public void applay(){append("applay()");}
    12     public void scrub(){append("scrub()");}
    13     public String toString(){return s;}
    14 
    15     public static void main(String [] args){
    16         Cleanser x = new Cleanser();
    17         x.dilute();
    18         x.applay();
    19         x.scrub();
    20         System.out.println(x);
    21     }
    22 }
    23 //洗涤剂
    24 public class Detergent extends Cleanser{
    25     public void scrub(){
    26         append("Detergent.scrub()");
    27         super.scrub();
    28     }
    29 
    30     // foam 泡沫
    31     public void foam(){ append("foam()");}
    32 
    33     public static void main(String [] args){
    34         Detergent x = new Detergent();
    35         x.dilute();
    36         x.applay();
    37         x.scrub();
    38         x.foam();
    39         System.out.println(x);
    40         System.out.println("Testing base class");
    41         Cleanser.main(args);
    42     }
    43 }
     1 package com.learnJava.test;
     2 
     3 /**
     4  * @Author zhuchangli
     5  * @Date 2019/9/14
     6  **/
     7 public class Sterilize extends Detergent{
     8     public void scrub(){
     9         append(" Sterilize.scrub()");
    10     }
    11 
    12     public void sterilize(){
    13         append("sterilize()");
    14     }
    15 
    16     public static void main(String [] args){
    17         Sterilize s = new Sterilize();
    18         s.scrub();
    19         System.out.println(s);
    20     }
    21 }

    二:参考答案:

     1 package com.learnJava.test;
     2 
     3 /**
     4  * @Author zhuchangli
     5  * @Date 2019/9/14
     6  **/
     7 
     8 // 消毒
     9 public class Sterilizer extends Detergent{
    10     public void scrub(){
    11         append("Sterilizer scrub()");
    12     }
    13 
    14     public void sterilizer(){
    15         append(" Detergent sterilizer()");
    16     }
    17 
    18     public static void main(String [] args){
    19         Sterilize s = new Sterilize();
    20         s.dilute();
    21         s.applay();
    22         s.scrub();
    23         s.foam();
    24         s.sterilize();
    25         System.out.println(s);
    26         System.out.println("Testing base class: ");
    27         Detergent.main(args);
    28     }
    29 }

    继承类的 都是相同的。

    三:总结

    1,在每个类中都设置一个main()方法的技术可以使每个类的单元测试都变得简便易行,而且在完成单元测试之后也不用删除main() 方法,可留作下次测试。

    2,为了继承,一般的规则是将所有的数据成员都指定为private,将所有的方法指定为public。如本节  Cleanser 没有加任何访问权限修饰词,那么默认的访问权限为包访问权限,仅允许包内成员访问,如果从其他包中继承Cleanser,那么只能访问public成员。

    3,采用super 调用基类方法,在scrub中,并不能直接调用scrub() 方法,因为将产生递归。

  • 相关阅读:
    关于Git的一些常规操作
    .Net 常用ORM框架对比:EF Core、FreeSql、SqlSuger (下篇)
    Myeclipse打开许多JSP文件或者js文件之后非常卡-------的解决办法
    单点登录常用生成token的操作-----UUID.randomUUID().toString() 简介
    如何使用时间复杂度和空间复杂度来区分算法的效率?
    自定义注解的简单使用
    企业中常用的Git和Svn比较。
    框架中常见的注解分析
    处理大数据流常用的三种Apache框架:Storm、Spark和Samza。(主要介绍Storm)
    养生食谱
  • 原文地址:https://www.cnblogs.com/changlili/p/11519512.html
Copyright © 2011-2022 走看看