• <Java中的继承和组合之间的联系和区别>


     1 //Java中的继承和组合之间的联系和区别
     2 //本例是继承
     3 
     4 class Animal
     5 {
     6     private void beat()
     7     {
     8         System.out.println("心胀跳动...");
     9     }
    10     public void breath()
    11     {
    12         beat();
    13         System.out.println("吸一口气,吐一口气,呼吸中...");
    14     }
    15 }
    16 //继承Animal,直接复用父类的breath()方法
    17 class Bird extends Animal
    18 {
    19     public void fly()
    20     {
    21         System.out.println("我在天空自由飞翔...");
    22     }
    23 }
    24 //继承Animal,直接复用父类breath()方法
    25 class Wolf extends Animal
    26 {
    27     public void run()
    28     {
    29         System.out.println("我在陆地上快速奔跑...");
    30     }
    31 }
    32 public class InheritTest
    33 {
    34     public static void main(String[] args) 
    35     {
    36         Bird b = new Bird();
    37         b.breath();
    38         b.fly();
    39         Wolf w = new Wolf();
    40         w.breath();
    41         w.run();
    42     }
    43 }
     1 //Java中的继承和组合之间的联系和区别
     2 //本例是组合
     3 class Animal
     4 {
     5     private void beat()
     6     {
     7         System.out.println("心胀跳动...");
     8     }
     9     public void breath()
    10     {
    11         beat();
    12         System.out.println("吸一口气,吐一口气,呼吸中...");
    13     }
    14 }
    15 class Bird
    16 {
    17     //将原来的父类组合到子类中来,作为子类的一个组合部分.
    18     private Animal a;
    19     public Bird(Animal a)
    20     {
    21         this.a = a;
    22     }
    23     //重新定义一个自己的breath()方法
    24     public void breath()
    25     {
    26         //直接复用Animal提供的breath()方法来实现Bird的breath()方法
    27         a.breath();
    28     }
    29     public void fly()
    30     {
    31         System.out.println("我在天空自在的飞翔...");
    32     }
    33 }
    34 class Wolf
    35 {
    36     //将原来的父类组合到子类中来,作为子类的一个组合部分.
    37     private Animal a;
    38     public Wolf(Animal a)
    39     {
    40         this.a = a;
    41     }
    42     //重新定义一个自己的breath()方法
    43     public void breath()
    44     {
    45         //直接复用Animal提供的breath()方法来实现Bird的breath()方法
    46         a.breath();
    47     }
    48     public void run()
    49     {
    50         System.out.println("我在陆地上快速奔跑...");
    51     }
    52 }
    53 
    54 public class CompositeTest
    55 {
    56     public static void main(String[] args)
    57     {
    58         //此时需要显示创建被组合的对象
    59         Animal a = new Animal();
    60         Bird b = new Bird(a);
    61         b.breath();
    62         b.fly();
    63 
    64         //此时需要显示创建被组合的对象
    65         Animal a2 = new Animal();
    66         Wolf w = new Wolf(a2);
    67         w.breath();
    68         w.run();
    69     }
    70 }
  • 相关阅读:
    修饰符
    Flex—鼠标样式设置
    代码审查――为可读性努力的巨大能量
    防火门、防盗门、安全门、实木门、单元门、智能门、装甲门、复合门
    表单设计器—开篇和环境
    DB2 9.5在英文版win7上Control Center菜单栏乱码问题解决
    Resin2.1与 IIS 整合
    Flex/AIR控件字体样式设置
    表单设计器—HTML元素操作
    学习ORACLE网址
  • 原文地址:https://www.cnblogs.com/sun-/p/5448225.html
Copyright © 2020-2023  润新知