1.抽象类:把实例化没有任何意义的父类,改成抽象类。将没有任何意义的方法,将virtual修饰符改为abstract,使之成为抽象方法。(抽象方法没有方法体,直接在括号后加;)
注意:第一、抽象类不能实例化。 第二、抽象方法是必须被子类重写的方法。 第三、如果类中包含抽象方法,那么类必须定义为抽象类,不论是否包含其他的一般方法。 附加:让抽象类拥有尽可能多的共同的代码,拥有尽可能少的数据。 抽象类通常代表一个抽象概念,它提供一个继承的出发点,当设计一个新的抽象类时,一定是用来继承的。
2.接口(interface):是把隐式公共方法和属性组合起来,以封装特定功能的一个集合,一旦类实现了接口,类就可以支持接口所指定的所有属性和成员。声明接口在语法上与声明抽象类完全相同,但不允许提供接口中任何成员的执行方式。 所以接口不能实例化,不能有构造方法和字段,不能有修饰符,实现接口的类就必须要实现接口中的所有方法和属性。 这就是接口的要求。
Q:抽象类和接口的区别呢???
A:抽象类可以给出一些成员的实现,接口却不包含成员的实现,抽象类的抽象成员可被子类部分实现,接口的成员需要实现类 完全实现,一个类自能继承一个抽象类,但可实现多个接口等。
区分:第一,类是对对象的抽象;抽象类是对类的抽象;接口是对行为的抽象。第二,如果行为跨越不同类的对象,可使用接口;对于一些相似的类对象,用继承抽象类。 第三,从设计的角度讲,抽象类时从子类中发现了公共的东西,泛华出父类,然后子类继承父类,而接口是根本不知道子类的存在,方法如何实现还不确定,预先定义。 通过重构改善已有代码的设计。 换句话说,抽象类是自底而上抽象出来的,而接口则是自顶向下设计出来的。
转载于:https://blog.51cto.com/4226295/1266497