js 抽象类 抽象方法 到底是什么,干什么用的

JavaScript030

js 抽象类 抽象方法 到底是什么,干什么用的,第1张

面向对象是对接口编程,不是对实现编程。抽象类定义了接口,至于怎么实现,调用者已经不用关心了。

相当于提供了一种特定类的使用规范,其中一部分是公共的,能够使该类正常运转并提供外部接口,它与接口的区别也就在与此;另一部分由虚函数组成,供子类继承实现。这样做的好处是只要实现自己需要的部分,就可以自动运转,没有关联。

简单的说,抽象类就是含有纯虚函数的类,这是它的定义。

从功能上来讲,抽象类定义了一个接口,即方法调用规约,派生类实现具体的规约。这实际上可以将具体的实现和接口分离开来,从而达到底层细节变化而高层框架不变的需求,通俗一点就是解耦。

abstract是抽象的意思,在java中,规定只能修饰类或者方法,所以不能修饰属性。(1)abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型(见后面实例),也就是编译时类型。抽象类就相当于一类的半成品,需要子类继承并覆盖其中的抽象方法。(2)abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明而没有实现,需要子类继承实现(覆盖)。

什么是对象

       

JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等,每个对象带有属性和方法。

对象的属性:反映该对象某些特定的性质的,如:字符串的长度、图像的长宽等;

对象的方法:能够在对象上执行的动作。例如,表单的“提交”(Submit),时间的“获取”(getYear)等;

JavaScript 提供多个内建对象,比如 String、Date、Array 等等,使用对象前先定义,如下使用数组对象:

  var objectName =new Array()//使用new关键字定义对象

或者

  var objectName =[]

访问对象属性的语法:

objectName.propertyName

如使用 Array 对象的 length 属性来获得数组的长度:

var myarray=new Array(6)//定义数组对象

var myl=myarray.length//访问数组长度length属性

以上代码执行后,myl的值将是:6

访问对象的方法:

objectName.methodName()

如使用string 对象的 toUpperCase() 方法来将文本转换为大写:

var mystr="Hello world!"//创建一个字符串

var request=mystr.toUpperCase() //使用字符串对象方法

以上代码执行后,request的值是:HELLO WORLD!