关于多态接口及异常处理的补充学习

关于多态和接口,并没有学的很深,还只是作为一个泛泛而谈,希望大佬指教。

有关多态,就会涉及到继承,涉及到继承中,子父类中的方法。常见的多态往往就是,类名1 对象名 = new 类名2();在其中 类名2可以是类名1本身也可以是他的子类。

在生活中,我们日常能看见多态,家里要吃饭时 我们就需要去买“菜”这个菜就很多样,肉,鱼,虾,青菜,白菜等等都可以称为菜,那我们买菜就是一个多态现象,对于肉而言,他属于菜,但是他也有自己独特的特性,就像娃娃菜富水,猪肉富油,牛肉富蛋白质,这都是子类的一个特性,此时,我们假设有一个菜类,一个娃娃菜类,一个猪肉类,一个牛肉类,在父类中,他们共有一个health()方法,娃娃菜的特有就是补充维生素,猪肉补充脂肪,牛肉补充蛋白质,那此时可以看的出来,多态必须基于方法的重写,需要子类对父类的公有方法进行自己独特的重写,多态不是一种特殊的方法,只是一个特殊的特征,就是同一个对象 在不同时刻有不同的形态。

在多态中,通常是由父类名 对象名 = new 指向的子类名,来决定定义一个指向哪个子类的对象,这个对象就可以执行那个子类的重写方法,要注意是独特的重写的方法,不是子类的特有方法,对于子类的特有方法,由父类名new的对象,必须要经过向下转型也就是(子类名)对象名.来调用特殊的方法。

上一篇中,我们讲过了一些有关抽象类的内容,知道了有关抽象我们通常使用abstract来修饰,被这个修饰符修饰的方法,我们称为抽象方法,这个修饰符修饰的类,我们称为抽象类,接口是个特殊的抽象类,对于java而言我们往往会遗憾于只能单继承,此时,接口就出来了,接口实现了多继承,到了接口的时候,我们就不用class来创建了,而使用interface,接口不同于抽象类的地方是,接口中必须全部都是抽象方法,而抽象类里可以有普通方法,我们普通类继承抽象类的时候,不需要重写所有方法,但是实现接口的时候我们就需要重写所有的抽象方法。

我们继承用的关键字是extends,但是实现接口的时候,使用implements来实现,一个类可以实现多个接口,中间用","隔开。

抽象类中可能包含非final的变量,接口是不可以实例化的,但是可以被实现类实现,所以我们可以在接口中定义不能在接口中实现的一些抽象方法,在实现类中实现。

异常处理包含了五个关键字,捕获异常try catch fianlly,抛出异常throw throws,在try catch finally中,catch和finally都是可以省略的,但是不可能同时略,finally是程序中必然会执行的代码块,若果遇到return,会在return之前先执行finally代码块,再return。catch时,异常的顺序必须按从小到大排列,不可以从大到小,因为catch是按顺序查找执行,如果有大的在前面,他就不往后查找了。

对于抛出而言,就是throws和throw的区别,throws是写在方法名后的,可以写多个异常,在调用方法时报错,throw只能有一个异常,且写在方法体里,在方法写出来的时候就报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值