抽象类和普通类的区别

包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样,同样可以拥有成员变量和普通的成员方法。注意,抽象类和普通类的主要有三点区别:

1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。

2)抽象类不能用来创建对象;

3)如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。

在其他方面,抽象类和普通的类并没有区别。

时间: 2024-10-17 21:47:14

抽象类和普通类的区别的相关文章

PHP的抽象类、接口类的区别和选择【转载】

本文转自:http://blog.csdn.net/fanteathy/article/details/7309966 区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过关键字extends继承. 2.接口中不可以声明成员变量(包括类静态变量),但是可以声明类常量.抽象类中可以声明各种类型成员变量,实现数据的封装.(另Java接口中的成员变量都要声明为public static final类型) <?php abstract c

java抽象类和普通类的区别

1.抽象类可以没有抽象方法,也可以有普通方法: 2.抽象方法不能声明为静态,抽象方法只需声明无需实现,没有主体,普通方法有主体: 2.抽象类的子类必须实现父类的抽象方法,否则该子类也是抽象类: 3.抽象类可以有构造方法,被继承时子类必须继承父类的一个构造方法: 4.含有抽象方法的类必须是抽象类: 5.抽象类不能被实例化: 原文地址:https://www.cnblogs.com/elian91/p/11100376.html

C#.NET里面抽象类和接口有什么区别

1.面向接口编程和面向对象编程是什么关系 首先,面向接口编程和面向对象编程并不是平级的,它并不是比面向对象编程更先进的一种独立的编程思想,而是附属于面向对象思想体系,属于其一部分.或者说,它是面向对象编程体系中的思想精髓之一. 2.接口的本质 接口,在表面上是由几个没有主体代码的方法定义组成的集合体,有唯一的名称,可以被类或其他接口所实现(或者也可以说继承).它在形式上可能是如下的样子: interface InterfaceName {     void Method1();     void

Java 抽象类和接口有什么区别

抽象类和接口有什么区别? 1. 抽象类在java语言中所表示的是一种继承关系,一个子类只能继承一个父类,但是可以实现多个接口. 2. 在抽象类中可以拥有自己的成员变量和非抽象类方法,但是接口中只能存在静态的不可变的(public static final)成员数据(不过一般都不在接口中定义成员数据),而且它的所有方法都是抽象的. 3.抽象类的子类可以部分实现父类中的抽象方法,但是它们本身也是抽象类; 而当类实现特殊接口时,它定义所有这种接口的方法. 4.抽象类和接口所反映的设计理念是不同的,抽象

抽象类和接口有什么区别

含有abstract 修饰符的class 即为抽象类,abstract 类不能创建的实例对象.含有abstract 方法的类必须定义为abstract class,abstract class 类中的方法不必是抽象的.abstract class 类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法.如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract 类型.接口(interface)可以说成是抽象类的一种特例,接口中的所有

抽象类(abstract)和借口的区别(interface)

java中抽象类跟接口的区别2011-03-25 11:06:23 分类: Java 含有abstract修饰符的class 即为抽象类,abstract类不能创建实例对象,含有abstract的方法的类必须定义为abstract class ,abstract class 里的方法不必是抽象的,抽象来中定义抽象方法必须放在具体子类中实现,所以呀,不能有抽象的构造方法或抽象的静态方法,如果子类没有实现抽象父类中的所有 方法,那么,子类也必须定义为抽象类. 接口(interface)可以说成是抽象

java中抽象类和接口有什么区别

抽象类(abstract class):含有abstract修饰符的类.它不能创建实例对象:含有abstract方法的类必须定义为abstract class:abstract class类中的方法不必是抽象的:abstract class类中定义抽象方法必须在具体子类中实现,所以,不能有抽象构造方法或抽象静态方法:如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型. 接口(interface):可以说成是抽象类的一种特例,由interface修饰.接口中的所有

Interface与abstract类的区别

含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象.含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的.abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法.如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型. 接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须

hadoop中Text类 与 java中String类的区别

hadoop 中 的Text类与java中的String类感觉上用法是相似的,但两者在编码格式和访问方式上还是有些差别的,要说明这个问题,首先得了解几个概念: 字符集: 是一个系统支持的所有抽象字符的集合.字符是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等.例如 unicode就是一个字符集,它的目标是涵盖世界上所有国家的文字和符号: 字符编码:是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对.即在符号集