一、java的面向对象特征?
面向java对象的特点:封装、继承、多态、抽象。
java面向对象的三个特征是什么? 也就是说,打包、继承、多态性、
但说到面向对象,另一大特点是抽象。
1、包装:
a )铺位:
Java将现实世界中具有共同特征的实体抽象到Java中的类中。 Java是面向对象的语言,因为类的实例是对象,对象和真实世界实体是一一对应的。
b )概念:
每个类都有属性和方法。 封装是隐藏属性和方法,只保留一些外部接口和外部交互。
c )打包的好处:
I .减少偶联
ii .轻松修改自己的实现代码,而不修改调用我们代码的程序片段。
d )从程序的角度分析软件包的好处
I .假设您有如图所示的Husband类。
此Husband类没有setter和getter方法。 我们要用那个,只能这么做
如果项目需求现在更改,则将age更改为String类型的。 图:
如果我们程序成百上千的地方使用husband.age,我们就会逃跑
对此,使用封装就很简单了。 您只需要重新生成Husband类的age的setter和getter方法,同时在setAge方法中进行更改。
其他地方仍然使用原来的引用。
2、继承:
a )概念:
继承是指使子类继承父类的特性和行为,而子类对象具有父类的非私有属性和方法。
a )类的继承格式:
在extends关键字很棒的滑板的一个类中继承另一个类。 例如
类class父类{}
class子类extends父类{}
b )为什么需要继承?
减少导线的重复、肥大,提高导线的维护性。
假设现在我们开发动物类,其中的动物分别是企鹅和老鼠,要求如下:
企鹅:属性(名字、id )、方法)吃、睡、自我介绍) )。
老鼠; 属性(名字、id )、方法)吃、睡、自我介绍) )。
从这两个代码可以看出,代码是重复的。 在有其他动物的情况下,代码增加的话,后维护会变得麻烦。 在这种情况下,可以使用继承解决问题。
首先,两个动物提取相同的属性和方法,形成一个动物类(亲戚)
通过让企鹅类和鼠类都继承这种动物类,企鹅和老鼠都有了父母(动物类)的属性和方法,子类就不用写那么重复的代码了。 例如:
a )继承的特性:
I .子类具有父类的非私有属性和方法。
ii .子类可以完全有自己的属性和方法(扩展到父类);
iii.Java是单个继承(每个子类只能继承一个父类); 但是,Java是多重继承(例如,a继承b,b继承c )。
iv .增加了类间的耦合(所以继承要慎重使用! )
b )扩展:
上述Java仅支持单个继承,但如果一个类已经继承了其他父类,则可能无法继承当前所需的其他父类。 在这种情况下,可以使用另一种实现implements的方法。
implements关键字允许Java具有多个继承特性。 实现多个接口时,接口和接口之间必须用逗号分隔。
Super和this关键字:
Super关键字:使用Super关键字可以访问引用当前实例对象的父类的父类成员的子类。
This关键字:对实例对象自身的引用。
例如:
3、多态性
a )概念:
多态性是指在同一接口上使用不同的实现并执行不同的操作。
图:
a )多态性的三个必要条件:
I .继承(扩展)
ii .重写(子类重写父类的同名方法) ) ) ) ) ) ) )。
iii .父类引用指向子类的对象,例如:
Animal a=newCat (;
父类引用animal指向子类cat
b )让我给你看一个多态性的例子。
I .定义抽象类a
nimal然后定义子类Cat和Dog,继承Animal,实现父类的eat()方法,同时定义一个自己的方法work()。
在main方法中调用
补充:
子类继承父类,重写父类的方法,
当子类对象调用重写的方法时,调用的是子类的方法,而不是父类的方法,
当想要调用父类中被重写的方法时,则需使用关键字super。
4、抽象:
a)概念:
抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象,数据抽象指的是属性,行为抽象指的是方法。
b)抽象方法:使用abstract修饰的方法是抽象方法。
b)抽象类:包含抽象方法的类是抽象类,抽象类使用abstract修饰。
(补充:不准确,抽象类中可以不包含抽象方法,但是如果一个抽象类中不包含抽象方法,定义为抽象类没有意义,所以我们就认为包含抽象方法的类就是抽象类)。
i.抽象类不能创建对象;
ii.如果一个类继承了抽象类,子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为abstract。
iii.抽象类就是用来作为父类,让子类继承的。如果我们定义了一个抽象类,却不去继承它,就等于白白创建了一个抽象类,没有任何意义。
面试全集文章参考:http://www.importnew.com/22083.html