武汉web培训
达内武汉中心

18571612865

热门课程

抽象类和抽象方法

  • 时间:2017-06-15 15:19
  • 发布:武汉web培训
  • 来源:web教程

今天,有达内武汉html5培训的小编给大家带来的是抽象类和抽象方法。

一.面向对象的多态性

多态是指两个或两个以上的不同类的对象对同个方法的调用作出的不同响应的方式。

重载也是实现多态的一种方式。

二.使用抽象类和抽象方法的实现多态

< 1>抽象方法是一个没有实现的方法,通过在定义是增加关键字abstract可以声明抽象方法。

语法:

访问修饰符 abstract 返回值类型 方法();

抽象方法没有闭合的大括号,简单的说就是没有方法体。

< 2>含有抽象方法的类必然是抽象类。同样,使用abstract 关键字来定义个抽象类

语法:

访问修饰符 abstract class 类名

抽象类中不一定都是抽象方法,抽象类也可以容纳有具体实现的方法。但是含有抽象方法的类必然是抽象类。

注意:

1 抽象类不能被实例化。

2 抽象类必须被继承。

3 如果抽象类没有被子类的方法实现,那么子类也将被默认为抽象类

4 抽象类不能是密封的或者是静态的(sealed/ static)

抽象类和抽象方法的使用

1.重写抽象方法

当从一个抽象基类派生一个子类时。子类将继承基类的所用特征,包括基类为实现的方法。抽象方法必须在其子类中实现,除非其的子类也是抽象类。

语法:

访问修饰符 override 返回值类型 方法() {//方法体}

里氏替换原则

原则上子类的对象是可以赋给父类对象的,反过来,父类的对象是不能替换子类的。这种特征称为里氏替换原则(LSP)。

< 1>“is”操作符用于检查对象是否与给定的类型相同。主要的使用方法是判断。其结果为true或false 。

< 2>“as”操作符用于两个对象之间的类型转换。As运算符类似于强制类型转换,所不同的是,当转换失败时,运算符将产生(null)空,而不引发异常。

使用虚拟方法实现多态。(提供默认的方法体)

定义虚方法,使用virtual 关键字修饰,可以有方法体。

语法:

访问修饰符 virtual 返回值类型 方法(){//方法体}

虚方法可以有具体的实现,也可以被重写。重写使用override 关键字。

当虚方法中有方法体,并且在子类中又被重写后,测试程序的调用不会虚方法中默认的方法体,而是直接执行重写后的方法体,当没有被重写时,测试程序将调用默认的方法体。

虚方法的实际应用

在集合中重写Equals()方法。Equals方法默认情况下只支持引用相等,也就是相比较的两个对象是否引用同一个对象。不过Equals方法是一个虚方法,可以通过重写让它支持值相等。

语法:

Public  virtual  bool  Equals(object obj)

通过重写后,我们可以在集合中,通过让对象与对象值相等的方式,删除集合中的对象。

虚方法与抽象方法的区别

虚方法                      抽象方法

用virtual修饰                    用abstract修饰

要有方法体                    不允许有方法体

可以被子类override            必须被子类override

除了密封类和静态类外都可以写    只能在抽象类中

面向对象的三大特征:

封装:保证对象自身数据的安全性、完整性。即隐藏内部实现,稳定外部引用。

继承:子类继承父类成员,实现代码复用。

多态:调用相同方法实现不同的实现方式。

简单工厂模式是设计模式中的一种。设计模式是得到了很好的研究范例,是一种经验的总结。

原理:根据不同的需求,在同一个方法中,返回不同的子类对象,方法的返回值也是父类的对象。

达内,首家美国上市教育培训机构,成立15周年,专家讲师亲授,成功打造了500000名学员,向80000家知名合作企业输送企业需要的定制化人才,名额有限的免费试听火爆报名中,想要发展成为薪资上万的人才,已不再是说说而已!动心了吗?欢迎咨询达内武汉html5培训的客服,疑问统统砸过来吧!名额有限,先到先得哦!

马上预约七天免费试听课

姓名:

电话:

上一篇:web前端怎么学见效快?
下一篇:字符串与数值之间的转化

web前端学习容易犯的错误

web1702“诱人”活动

抽象类和抽象方法

jquery的ajax和getJson跨域获取json数据

选择城市和中心
江西省

贵州省

广西省

海南省

有位老师想和您聊一聊