抽象类与接口
绪论:
抽象类和接口是有紧密关糸的,接下来我们先从抽象类说起。
抽象类通常是作为其他类的一个父类,将其他类的方法进行一个声明,但又不给出具体的方法体,非常类似与C++中的函数声明,只不过C++的函数声明是可以放在任意一个函数里边。
- 需知如下知识点:
- 抽象类关键字
abstract
,无论是在成员变量还是具体方法,在前边加上一个abstract
进行一个声明。 - 有抽象方法就一定有一个子类对其方法进行实现。
- 抽象类属于一个顶层归纳功能,方便大项目多成员同时进行代码维护。
例子
我们首先定义一个抽象类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); } }
为什么我们要有抽象类这个东西呢??
当我们在做大项目的时候,有很多很多子类和属性需要增加的时候,我们可以通过抽象类进行增加,然后让其他开发人员自己扩充一个子类完成新的方法。比如我们在做游戏的时候,需要增加一个人物的技能属性,我们只需要让管理抽象类的程序员新增加一个方法,其余的事又可以找另外一个程序员进行子类扩充和方法实现,在大项目里非常方便!