聊聊继承、多态和抽象

2016-07-16  本文已影响0人  AnLLiang

想了很久,简书的第一篇文章写些什么好,自己是个技术小白,讲不了什么高深的技术,那就来聊聊我所认知的一些JAVA技术知识。

继承


Java是面向对象程序设计语言。(什么是面向对象,在这里就不唠叨了),而Java程序是什么?就是通过继承、组合对象形成的一套问题解决方案。通过继承可以纵观JAVA语言的所有特性。
继承是面向对象编程技术的基石(将复杂问题简单化)。也是后面所要讲的多态和抽象的前提。通俗来讲,继承是一个对象从另一个对象获取属性的过程(除了private属性以外),类之间就形成了所谓的等级关系。
继承有以下几个特点:

多态


什么是多态?同一种行为具有不同表现形态或者形式的能力这是官方的解释,听起来一头雾水。我的理解是:多态是对象的多种表现形式,即向上转型。
多态的前提是:

有人问什么是动态绑定,《Java编程思想》给出这样的解释:

在在运行时根据对象的类型进行绑定,而与之相反的是前期绑定,编译时就确定类型。>

有人又问,Java不是动态编程语言,怎么实现动态绑定呢?这是Java语言的一个特点——反射机制(后续更新文章会讲述)

看栗子:

public class Animal{
    public Animal(){
    }
    public void move(){
        System.out.println("Animal move");
    }
}

public class Dog extends Animal{
      public String name;
      public Dog(String name){
            this.name=name;
      }
      public void move(){
           System.out.println(name+"move");
      }
      public void eat(){
            System.out.println(name+"eat");
      }
}
public class Test{
    public static void main(String[] args){
          Animal dog1=new Dog("dog1");
          dog1.move();
          //dog1.eat();错误
          Dog dog2=new Dog("dog2");
          dog2.move();
          dog2.eat();
    }
}

执行以上程序,输出结果为:
dog1.move;
dog2.move;
dog2.eat;

抽象


抽象类,我的理解是,无法创建具体对象的类是抽象类,抽象类只是一个特殊的类,既然是JAVA中的类,那么就具有其所有的特点:继承、多态、重写重载等;

作用:

应用:

特点:

上一篇 下一篇

猜你喜欢

热点阅读