您的位置:首页 > 编程语言 > Java开发

Java学习笔记53. Java中的抽象类

2018-03-05 14:20 267 查看
关于抽象类,我的理解是:抽象类是图纸的图纸。
我们盖房子,需要有房子的图纸,盖的时候就按照图纸的要求一砖一瓦地建造。但是在Java里有一个特别的发明——抽象类。抽象类可以说是图纸的图纸。因为抽象类并没有指明,类中的方法怎么实现。它只是在图纸上注明了——需要一个地基,需要一个烟囱,需要一个院子,等等。可以说,它只是一份清单,列明了要去做什么。但是怎么做,则需要非抽象类去一个个地实现它。
抽象类中也可以有一般方法,也可以有成员字段。但是,只要有一个抽象方法存在,这个类就永远是抽象类,抽象方法和类名都要用abstract来修饰。抽象类的定义方式如下:abstract class className{
    返回值类型 方法名(参数){    //这个是一般方法
    }
abstract returntype methodName(parameters);    //抽象方法,用abstract修饰,无方法体
}抽象类的使用规则如下:
1。抽象类和抽象方法都必须用abstract关键字修饰
2。抽象类不能被实例化,这是抽象类的本质,只需要声明即可。
3。抽象类的子类必须覆盖抽象类的所有方法后,才能创建对象abstract class A{        //抽象类A
abstract String method(String i,String j);    //抽象方法,有两个参数
}
public class abstractClass extends A{    //抽象类的非抽象子类
String method(String a){        //抽象方法的重载
return a;
}
String method(){    //抽象方法的重载
return "method";
}
String method(String i,String j){    //抽象方法的覆盖,对于非抽象子类,这是必须的动作,
return "test";
}
public static void main(String[] args){
String a = "a";
abstractClass ab = new abstractClass();
ab.method(a);    //调用重载的方法
}
}
由上可见,抽象方法只需要把方法体之外的部分声明好就行了,剩下的部分留给抽象类的非抽象子类在覆盖的时候实现它的功能。抽象方法的子类可以是抽象类,也可以是非抽象类。但只有不是抽象的,抽象方法就必须全部覆盖掉,否则会出错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: