-复用类-继承语法-1

Posted changlili

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了-复用类-继承语法-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() 方法,因为将产生递归。

以上是关于-复用类-继承语法-1的主要内容,如果未能解决你的问题,请参考以下文章

第七章服用类

《Java编程思想》笔记 第七章 复用类

《JAVA编程思想》学习笔记——第七章 复用类

-复用类-继承语法-1

Thinking in Java 第七章 3-1

JAVA代码重用机制复用类之继承语法(附源码)