Java—面向对象(一)

说到面向对象,就应该说说它的那几个核心的机制:继承,重写,多态,抽象,接口。它们是判断是否运用了面向对象编程的核心。接下来用几个例子,看看它们的演变过程和它们之间的关系。

继承:简单来说,子类自动拥有父类的所有方法和属性。

举例:狗和猫都继承了动物的叫声。子类继承父类。

class Animal {  private String name;  public void setName(String name){this.name=name;}  public String getName(){return name;}  public void enjoy(){                       //动物叫声。。。    System.out.println("叫声......");  }} class Cat extends Animal {          private String eyesColor;                 //猫自己特有的方法。public String geteyesColor() {return eyesColor;}         public void seteyesColor(String eyesColor)        {this.eyesColor =eyesColor;}}class Dog extends Animal {private String eyesColor;               ////狗自己特有的方法。          public String geteyesColor() {return eyesColor;}        public void seteyesColor(String eyesColor)       {this.eyesColor =eyesColor;} }public class Test {    public static void main(String args[]){    Cat c = new Cat();    Dog d = new Dog();     c.seteyesColor("猫是蓝眼睛");            //实现了自己的特有方法。    d.seteyesColor("狗是黑眼睛");         c.enjoy();                               //也继承了父类的方法。          d.enjoy();         System.out.println(c.geteyesColor());    System.out.println(d.geteyesColor());    }}

结果:

解释:狗和猫既有自己的特有属性和方法,也全部拥有了动物(父类)的方法和属性。这就是继承的特点。

不过上述明显有缺陷的就是狗和猫都有自己独特的叫声,但是在这却都只是拥有了动物这个大众化的声音。该怎样改变呢?就用到了我们的重写。

重写:在子类中可以根据需要对从基类中继承来的方法进行重写。看看下面的改写。

class Animal {  private String name;  public void setName(String name){this.name=name;}    public String getName(){return name;}    public void enjoy(){                       //动物叫声。。。    System.out.println("叫声......");  }} class Cat extends Animal {          private String eyesColor;                            public String geteyesColor() {return eyesColor;}        public void seteyesColor(String eyesColor)      {this.eyesColor =eyesColor;}      public void enjoy() {                  //重写了父类动物的方法。    System.out.println("猫叫声......");  }}class Dog extends Animal {private String eyesColor;                         public String geteyesColor() {return eyesColor;}         public void seteyesColor(String eyesColor)       {this.eyesColor =eyesColor;}        public void enjoy() {               //重写了父类动物的方法。     System.out.println("狗叫声......");  }}public class Test {    public static void main(String args[]){        Cat c = new Cat();        Dog d = new Dog();        c.seteyesColor("猫是蓝眼睛");                    d.seteyesColor("狗是黑眼睛");      c.enjoy();                                      d.enjoy();      System.out.println(c.geteyesColor());        System.out.println(d.geteyesColor());    }}

结果:

解释:狗和猫都重写了动物的Enjoy()方法,所以实现了自己独有的叫声。增加了灵活性。

从上面可以看出重写是在继承上进化而来的,所以先继承再进行重写。

PS:由于内容比较多,所以剩下的3个面向对象特点,在下篇博客中讲解。

向上攀爬的。

Java—面向对象(一)

相关文章:

你感兴趣的文章:

标签云: