java基础知识1---面向对象及final,finally,finalize区别

1、面向对象(OOP)的特征

•抽象 :就是把现实世界中的某一方面提取出来,用程序代码表示,抽象出来的一般叫做类或接口。

     抽象包括两个方面,一个数据抽象,另一个是过程抽象. 

     过程抽象 :表示功能的操作,可理解为行为就是方法.

     数据抽象 :表示数据类型和施加于该类型对象的操作,可理解为对象的属性.

 

•封装 :是对象和类概念的主要特性,是把过程和数据包围起来,对数据的访问只能通过已定 义的界面。封装保证了模块具有较好的独立性,使得程序维护修改较为容易。如私有变量,用set,get方法获取。

 

•继承:是一种联结类的层次模型,并且允许和鼓励类的重用,提供一种明确表达共性的方法。新类继承原始类的特性,新类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。因此可以说,继承为了重用父类代 码,同时为实现多态性作准备.

•多态:是指允许不同类的对象对同一消息做出响应.多态性包括参数化多态性和包含多态性. 多态性语言具有灵活/抽象/行为共享/代码共享的优势,很好的解决了应用程序函数同名问题.总的来说,方法的重写,重载与动态链接构成多态性.java引入多态的概念。原因之一就是弥补类的单继承带来的功能不足.。

动态链接 :对于父类中定义的方法,如果子类中重写了该方法,那么父类类型的引用将调用子类中的这个方法,这就是动态链接.

以上就是面向对象的基本特征。

继承与重载:子类与父类的关系,重载方法的调用问题。

子类对象可以直接当成父类对象用,但是反过来就不行.

比如:人是父类,学生是人的子类,所以学生对象一定具备人对象的属性,但是人对象就未必具有学生对象的特性.但是子类对象当做父类来用,将失去子类所有特性,只保留与父类同名的属性和方法,此时可以对父类方法进行重写。

一个类中如果定义了重载的方法,则系统在调用方法时,会根据参数的类型自动选择调用合适的方法

2、final, finally, finalize 的区别。

•final :修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。

将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为搜索final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。

 被声明为final的方法也同样只能使用,不能重载。

•finally:再异常处理时提供 finally 块来执行资源释放。如果抛出一个异常,那么相匹配的catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。

•finalize:方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

任玉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值