抽象类与接口

绪论:

抽象类接口是有紧密关糸的,接下来我们先从抽象类说起。

抽象类通常是作为其他类的一个父类,将其他类的方法进行一个声明,但又不给出具体的方法体,非常类似与C++中的函数声明,只不过C++的函数声明是可以放在任意一个函数里边。


  1. 抽象类关键字​​abstract​​,无论是在成员变量还是具体方法,在前边加上一个​​abstract​​进行一个声明。
  2. 有抽象方法就一定有一个子类对其方法进行实现。
  3. 抽象类属于一个顶层归纳功能,方便大项目多成员同时进行代码维护。

例子
我们首先定义一个抽象类​​​Abs​​,在里面定义两个抽象方法

abstract class Abs{
abstract void show();
abstract void show(int i);
}

我们接下来要实现这两个方法,我们需要一个子类Real,在子类去实现这两个方法:

public class Real extends Abs{//子类继承抽象类
int x;
void show(){//无参
System.out.println("x="+x);
}

void show(int i){//有参
x=i;
System.out.println("x="+x);
}
}

接下来补充好我们的测试类​​Test​

public class Test {
public static void main(String []args) {
Real a=new Real();
Real b=new Real();
a.show();
b.show(2);
}
}

为什么我们要有抽象类这个东西呢??

当我们在做大项目的时候,有很多很多子类和属性需要增加的时候,我们可以通过抽象类进行增加,然后让其他开发人员自己扩充一个子类完成新的方法。比如我们在做游戏的时候,需要增加一个人物的技能属性,我们只需要让管理抽象类的程序员新增加一个方法,其余的事又可以找另外一个程序员进行子类扩充和方法实现,在大项目里非常方便!