java 继承 多态 接口_java 继承 多态 接口用法及区别

一、封装 (encapsulation)

定义:封装就是将客户端不应看到的信息包裹起来。使内部执行对外部来看不一种不透明的、是一个黑箱,客户端不需要内部资源就能达到他的目的。

1.事物的内部实现细节隐藏起来

2.对外提供一致的公共的接口――间接访问隐藏数据

3.可维护性

二、 继承 (inherit)

JAVA继承特点

继承:父类的成员能否继承到子类?

对类成员访问的限制及子类继承情况: (从严 到宽 )

private 私有,本类内部 不能继承

(default) 本类+同包 同包子类可继承

protected 本类+同包+子类 可以继承

public 公开 任何地方都可以访问 能继承到子类

覆盖

1、定义: 覆盖了一个方法并且对其重写,以求达到不同的作用。

2、用法:

a、最熟悉的覆盖就是对接口方法的实现

b、在继承中也可能会在子类覆盖父类中的方法

3、产生 “覆盖”的条件:

1、方法名:相同

2、参数表:相同(个数,类型)

3、访问限制符:相同或者更宽

4、返回值类型:相同 或者 子类返回的类型是父类返回的类型的子类

5、不能抛出比subclass(父类)更多的异常

注意:当我们在子类中创建的静态方法,它并不会覆盖父类中相同名字的静态方法。

(2)接口:

多态意味着“很多形式”,可以把儿子当作爸爸或爷爷!!

可以通过继承来定义相关类间的共同协议(方法就是协议的标志!),这样就等同于在对其他程序代码声明:“我所有的子类都能肠系用这些方法来执行这几项工作!”

为了避免出现“致命方块”所以java不允许出现多继承,接口正是我们的救星!java接口是100% 的纯抽象类。而且使用接口可以继承一个以上的来源,同时其他类也可以实现同一个接口中。所以可以为不同的需求组合出不同的继承层次!

三。如何判断应该是设计类、子类、抽象类或接口呢?

(1)如果新类无法对其他的类通过IS-A测试时,就设计不继承其他类的类。

(2)只有在需要某类的特殊化版本时,以覆盖或增加新的方法来继承现有的类。

(3)当你需要定义一群子类的模板,又不想让其他人初始化此模版时,设计出抽象的类给他们用。

(4)如果想要只定义出类可以扮演的角色,使用接口。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值