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

关于抽象类,我的理解是:抽象类是图纸的图纸。

我们盖房子,需要有房子的图纸,盖的时候就按照图纸的要求一砖一瓦地建造。但是在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);    //调用重载的方法
	}
}
由上可见,抽象方法只需要把方法体之外的部分声明好就行了,剩下的部分留给抽象类的非抽象子类在覆盖的时候实现它的功能。抽象方法的子类可以是抽象类,也可以是非抽象类。但只有不是抽象的,抽象方法就必须全部覆盖掉,否则会出错。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值