普通类,抽象类,两者的区别,

一.class普通类

1.类的定义:

     类的访问修饰符    修饰符    类名
    {
           类的成员
    }

在 C# 语言中创建的任何项目都有类的存在,通过类能很好地体现面向对象语言中封装、继承、多态的特性。

  • 类的访问修饰符:用于设定对类的访问限制,包括 public、internal 或者不写,用 internal 或者不写时代表只能在当前项目中访问类;public 则代表可以在任何项目中访问类。
  • 修饰符:修饰符是对类本身特点的描述,包括 abstract、sealed 和 static。abstract 是抽象的意思,使用它修饰符的类不能被实例化;sealed 修饰的类是密封类,不能 被继承;static 修饰的类是静态类,不能被实例化。
  • 类名:类名用于描述类的功能,因此在定义类名时最好是具有实际意义,这样方便用户理解类中描述的内容。在同一个命名空间下类名必须是唯一的。
  • 类的成员:在类中能定义的元素,主要包括字段、属性、方法。

二.抽象类或方法

  • abstract 关键字代表的是抽象的,使用该关键字能修饰类和方法,修饰的方法被称为抽象方法、修饰的类被称为抽象类。
  • abstract 关键字只能用于普通方法,不能用于 static(静态) 方法或者构造方法中。

1.抽象方法的定义

         访问修饰符  abstract  方法返回值类型  方法名(参数列表);

2.抽象方法的 3 个特征:

  1. 抽象方法只有声明没有实现(没有方法体)
  2. 抽象方法必须存在于抽象类中
  3. 子类重写父类时,必须重写父类所有的抽象方法

注意:抽象方法不能使用 private 修饰,因为抽象方法必须被子类重写,而如果使用了 private 声明,则子类是无法重写的。

1.抽象类的定义:
        访问修饰符  abstract class  类名
        {
            //类成员
        }
2.抽象类使用规则:

  1. 抽象类和抽象方法都要使用 abstract 关键字声明。
  2. 如果一个方法被声明为抽象的,那么这个类也必须声明为抽象的。而一个抽象类中,可以有 0~n 个抽象方法,以及 0~n 个具体方法。
  3. 抽象类不能实例化,也就是不能使用 new 关键字创建对象。

 

三.抽象类与普通类区别

1.关键字:抽象类声明时需要abstract 关键字来定义 ,而普通类则可以是public private等。

2.方法:抽象类里的抽象方法里不能有方法的主体,只能是抽象方法的声明,而普通类里的方法里可以有主体。

3.实例化:抽象类是不能被实例化的,也就是不能用new调用构造函数创建对象,而普通类可以通过new关键字进行实例化。

4.访问权限:抽象类的访问权限限于public和protected,因为抽象类方法是需要继承之后让子类去实现的,private修饰的方法不能被重写,抽象方法的目的就是为了继承以后再子类里重写。而普通类的访问权限没有限制,都可以修饰。

5.继承:抽象类被继承时,子类必须实现它的所有方法,如果子类没有实现父类的抽象方法,则必须将子类也定义成抽象类。而普通类被继承时,不需要实现它的所有方法。

 

上一篇:接口和抽象类有什么区别?


下一篇:深入理解Java的接口和抽象类