java抽象和抽象类

Bertha 。 2022-09-22 11:50 366阅读 0赞

先来说一下抽象与接口的区别:抽象类表示该类中可能已经有一些方法的具体定义,但是接口就仅仅只能定义各个方法的界面(方法名,参数列表,返回类型),并不关心具体细节。

java提供了一个叫做抽象方法的机制,这种方法是不完整的,仅有声明没有方法体。通常是下面这中机制:

  1. abstract void f();

包含抽象方法的类是抽象类,如果一个类包含一个或者多个抽象方法,该类就必须限定为抽象类。来看下面这个例子:

  1. abstract class school {
  2. String schoolname;
  3. String classname;
  4. String location;
  5. public void setschoolname(String schoolname)
  6. {
  7. this.schoolname = schoolname;
  8. }
  9. public void setclassname(String classname) {
  10. this.classname = classname;
  11. }
  12. public String getschoolname() {
  13. return schoolname;
  14. }
  15. public String getclassname() {
  16. return classname;
  17. }
  18. abstract void setlocation(String location);
  19. abstract String getlocation();
  20. public String tostring() {
  21. String infor = "学校名称:" + schoolname + ";" + " " + "班级名称" + classname;
  22. return infor;
  23. }
  24. }

上面创建了一个abstract类(类中包含了两个abstract方法还包含多个实例方法),针对类的设置器、访问器、获取器的通常设计。接下来要做的就是创建一个来来继承这个抽象类,实现抽象方法。关于抽象方法的实现遵循以下原则:

凡是实现类必须要完整的重写所有的方法。部分不重写的话子类只能是抽象类,直至所有抽象方法被全部重写为止

  1. class student1 extends school {
  2. void setlocation(String location) {
  3. this.location = location;
  4. }
  5. String getlocation() {
  6. return location;
  7. }
  8. ...

student1类通过继承school抽象类实现了抽象类的两个抽象方法(必须要全部实现,因为student1类是实现类非抽象类)。再来看下面这个例子:

  1. abstract class student2 extends school {
  2. String studentname;
  3. String studentcode;
  4. String studentsexy;
  5. String studentbirthday;
  6. String studentaddress;
  7. abstract void setlocation(String location);
  8. abstract String getlocation();
  9. ...
  10. }

student2这个抽象类实现了对school这个抽象类的继承,但是并没有实现school类中的两个抽象方法,因为student2这个类是抽象类不是实例类因此可以这么做。student2抽象类还是需要其他的实例类进行继承实现两个抽象方法。另外抽象类不一定有抽象方法,但是具备抽象方法的类一定是抽象类

总之接口与抽象以及继承特性都可以实现对一个类的扩展,建立起类之间的联系。在使用中采用合适的模型进行灵活应用。

发表评论

表情:
评论列表 (有 0 条评论,366人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java抽象抽象

    先来说一下抽象与接口的区别:抽象类表示该类中可能已经有一些方法的具体定义,但是接口就仅仅只能定义各个方法的界面(方法名,参数列表,返回类型),并不关心具体细节。 jav

    相关 抽象抽象方法

    抽象类和抽象方法的修饰符abstract 一、含有抽象方法的类必须声明为抽象类         换句话说就是抽象方法只能存在于抽象类中 二、抽象类必须被继承,抽象类中的方

    相关 抽象抽象方法

    抽象类: 1、抽象类的定义? 当多个类中出现相同功能,但是功能主体不同,这时可以进行向上抽取。只抽取功能定义,而不抽取功能主体。 如果在本类有无法实现的