java中overload和override的区别,接口和抽象类的一些知识

一.重载和覆盖
overload是重载,override是覆盖,也就是对方法的重写。
overload:在同一个类中,允许存在同名函数,但是函数的参数个数和类型应该不同;重载与返回值类型无关,只看参数列表。
override:子类中的方法与父类中的名称和参数完全相同。通过子类中创建的实例来调用此方法时将调用子类中定义的的方法就是相当于把父类中定义的相同的方法给覆盖了。子类覆盖父类方法时只能抛出父类的异常或异常的子类,或者父类异常的子集。因为子类方法的权限要比父类方法大,所以如果父类方法时private类型,那么子类中不存在覆盖的问题,因为private类中的对象仅限于当前类中访问权限,所以子类中的同名的方法时候一个新的方法而不是对 父类的覆盖。
overload的特点是与返回值无关只看参数列表,所以重载的方法我们可以改变它的返回值类型。因此参数列表完全一样的两个方法时不能通过返回值类型不同来实现重载的。

二.接口和抽象类
抽象类使用abstract修饰,没有对象,因此抽象类无法进行实例化;abstract修饰的方法称为抽象方法,此方法没有方法体;抽象类的使用特点主要有:
1.没有对象,即不能用new关键字创建抽象类的对象;
2.抽象类不一定有抽象方法,但抽象方法所属的类一定是抽象类;
3.抽象类的抽象方法必须在子类中重写。
抽象类的意义只是用来被继承,一旦不被继承,方法不被重写,它也就失去了实际的意义。
接口和抽象类的定义比较相似,简单来说,借口是某个事物对外提供一些功能的声明 ,它使用interface关键字来定义,接口中的属性默认为public static final,方法默认为public abstract,接口不用继承而是使用implements实现,类和借口之间的关系称为实现。在java中累的继承是但继承,但是一个类可以同事实现多个接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值