java面向对象特征
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java面向对象特征相关的知识,希望对你有一定的参考价值。
(1).抽象:把需要用到的重要的东西抽出来,不重要的东西忽略掉。
(2).继承:子类继承父类的非私有成员,重用具有相同的属性,当父类方法满足不了时,重写父类不具有的特征属性,方法结构保持与父类一致。(既能重用也能有自己的实现)。
继承的优点:代码的可重用性
使用继承时会产生一个关键字super. 当创建子类对象时,先调用父类的构造方法,再调用子类的构造方法。子类构造方法第一句话第一行一定有super();即调用父类构造方法,此时如果父类中的构造方法中有参数则必须要在super(参数1,参数2,....................)。Super关键字使用方法2:super.move(),此时super指父类的对象。
问:在不同点更多的时候,为什么还要用继承?
(3)多态性:
方法多态(重载,重写)
对象多态:
(容纳性更广)向上转型:
意义:应用场景一般有两种,一个是父类对象作为返还值类型,一个是父类对象作为方法形参,会遗失子类中特有而父类中没有的方法。
比如student类继承自person类,那么可以这样写。
Person person = new Student();
这就是向上转型,不用进行强制转换,但是可能会造成精度的丢失。
因为这是person对象,不能调用子类student中有而父类person中没有的方法和属性。
至于好处,也就是多态的好处,应用场景一般有两种,一个是父类对象作为返还值类型,一个是父类对象作为方法形参,比如student和teacher都继承自person,两个类中都复写了父类中的work方法,你可以这么写:
public void test(Person person){
person.work();
}
如果传入的是student对象,那么执行的work方法就是student类中的work方法,如果是teacher就是teacher的work方法,当你不确定会执行哪个的时候,就可以这么写,不然就要写两个方法,一个方法参数是student一个方法参数是teacher。
(4).封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据。
以上是关于java面向对象特征的主要内容,如果未能解决你的问题,请参考以下文章