我们知道JAVA是OOP语言,它通过继承,组合,封装,多态等来体现OOP的思想,那么请问
具体是怎么通过这些特性来表现出来的

解决方案 »

  1.   

    面向对象主要有四大特性:封装、抽象、继承和多态。各自定义: 
    封装:在面向对象语言中,封装特性是由类来体现的,我们将现实生活中的一类实体定义成类,其中包括属性和行为,在行为中实现一定的功能,也可操作属性,这是面向对象的封装特性; 
    抽象:抽象就是将一类实体的共同特性抽象出来,封装在一个抽象类中,所以抽象在面向对象语言是由抽象类来体现的。
    继承:在面向对象语言中,就是一个类可以继承另一个类的一些特性,从而可以代码重用,其实继承体现的是is-a关系,父类同子类在本质上还是一类实体; 
    多态:多态就是通过传递给父类对象引用不同的子类对象从而表现出不同的行为,多态可为程序提供更好的可扩展性,同样也可以代码重用。 
        因为在Java是通过类的模板来定义出对象实例,所以自然而然就将对象封装了,这在任何面向对象的语言都很容易体现! 
        在抽象、继承和多态当中,继承是基础。因为如果没有继承这种机制,就没有父类和子类的概念,抽象和和多态根本就无法体现。正是有了继承这种机制,我们可以就抽象实体定义成抽象类,从而具体的实体可以继承抽象类来实现,不需要重复写共同的特性,抽象特性也就体现出来了;也正是因为有了继承机制,才有了父类和子类的概念,从而父类对象引用参数通过传递子类对象体现出不同的行为,实现了多态。继承和多态可明显增加代码重用,减少代码量,同时利用多态可扩展性也增强。 
        在Java中,抽象是以两种方式表现:Abstract Class和Interface。Java就是基于接口的编程,在我们编写代码时不知道如何选择应该使用抽象类还是接口,它们虽然看起来没多大区别,但在设计上可以明显看出它们之间的本质区别。其实我们在选择抽象类和接口时,要记住这样的原则,抽象类是定义一类实体的共同特征,其父类和子类在本质上还是同一类实体,是is-a关系,比如鸟和燕子,抽象类不仅意味着定义特定的行为,而且意味着定义实现的模式;而接口只是定义行为的模型,不同的实体可以implements不同的行为,同时接口要满足ISP原则,即不同实体的行为不能定义在同一接口中,它其实体现的是like-a的关系。 
      

  2.   

    其实面向对象编程的目的,是要解放程序员,而不是更程序员更多的负担。   
      你想想你平时的生活,朴实的生活,   
        
      “把铅笔拿给我。”   
      这里边对方那个人(给你拿铅笔的那个人)是一个对象,铅笔是一个对象,你自己也是一个对象。   
        
        
      //   铅笔   
      class   Pencil   
      {   
      public:   
              String   &getStrName(){return   strName};   
      private:   
              String   strName;   
      };   
        
      //   你或者帮你铅笔的人   
      class   oneBody   
      {   
      //   与外界交互信息的方法。   
      public:   
              //   告诉别人信息的方法。   
              void   say(oneBody   &toOnebody,   String   &something);   
              //   听到别人信息的方法。(从而执行某些操作)   
              void   hearSomething(oneBody   &fromOnebody,   String   &something);   
      //   自己内部可执行的方法。   
      private:   
              //   给某人一只铅笔。   
              bool   giveOnePencil(oneBody   &toOnebody,   Pencil   &onePencil);   
      };
      

  3.   

    oop是现实世界的抽象,属于抽象派哲学范畴
      

  4.   

    1. privat/protected/public
    2. extends/implements 
    3. Parent p = new Child1(); p = new Child2();...
      

  5.   

    不是java怎么体现oop,而是你怎么体现oop,我见过很多用java写的面向过程的程序。
      

  6.   

    好雷人的问题Java是OO语言, 支持继承,组合,封装,多态等OO特性. 至于OOP/OOD则是开发者和设计者的应用.要想了解, 推荐看<<think in java>>