java封装的四个关键字_Java中类的继承,属性和方法的四种修饰符的作用范围,final关键字,java的三大特点中的2个:封装和多态,以及多态的一个设计模式,模板方法模式(template met...

(一)Java中的继承:

关于继承,在Java中类的继承只能是单继承,不像C+++那样灵活,可以多继承,多继承的后果就是各种关系乱套,就相当于一个孩子有2个母亲一样,社会关系的复杂,不利于程序后期的开发和维护,所有Java中的类是只能单继承,通过接口来实现多继承;对于接口的话,是可以多继承的,例如:A接口可以同时继承接口B和接口C,但是有一点要注意,就是实现接口A的类必须要实现接口A、B、C中所有的抽象方法;接口之所以可以多继承,就是因为接口结构比较简单。

继承是通过extends关键字来实现,默认的父类是Object类(根源)。

(二)四种修饰符(public protected 默认friendly private )

1.对于public 修饰的属性和方法:不管在哪个包中的哪个类都可以使用,不同项目之间的肯定就不可以了。

2.对于protected修饰的属性和方法:首先的话,在同包的类中都可以使用,或者其它包中的子类中使用,但是有一点要注意,在子类中的main()方法中就不能使用该属性或者方法

3.对于friendly修饰的属性和方法:只能在同包中使用

4.对于private 修饰的属性和方法:只能在本类中使用

(三)final修饰符

1.被final修饰的类:不能被继承

2.被final修饰的变量:就是常量,不能在被修改

3.被final修饰的方法:该类的子类不能重写该方法,但是可以在本类重载该方法

4.注意:比如在main()方法中:代码如下

34eb37e78b368b62aece2d7227fb2664.png

运行的效果:

959e57738f586bd5eb927b976e342abb.png

说明:在引用前面加fina修饰符,只是让a的空间地址不能改变而已,可以修改a指向的数组里面的各项值

(四)封装

首先的话要用private修饰符,来修饰类的成员变量,只能在本类中使用,通过set、get方法提供对外的访问入口

好处:1.只能通过指定方法进行数据的访问

2.隐藏类的具体实现细节

3.方便修改实现

4.方便加入控制语句

(五)多态:

多态的构成条件:1.要有类的继承

2.要有方法的重写

3.父类的引用指向子类的对象

看代码:

a6cd3227d7902c60f62bf66be0d84540.png

运行的效果:

87cfb45d3e9fba3f332a77c591fea18c.png

多态的好处:

1e914d812181c1e2da02b1c56856550e.png

(六)模板方法模式(template method)

首先定义一个抽象的模板

79e5ba6ba86d12c8eac1d59823052486.png

大概的意思就是:先订餐 酒店去操办 最后付款

写一个实现它的子类:(在写main方法)

4db0aa01fe0bff40f37334f133e3c9ac.png

来看看运行效果:

935721a14e81b0434498492a03f74280.png

注意:这就是模板方法模式,之前肯定有很多人纳闷,这个方法我明明没有调用,为什么运行了,就是这个原因,也叫钩子函数(hook或者callBack回调 ),具体的实现交给子类,父类把模板定义好

原文:http://www.cnblogs.com/shangxinfeng/p/6664569.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值