JAVA语言中,面向对象的特征
在至今的学习过程中,我们已经学习了JAVA语言中面向对象的三大特征中的两大特征:
即面向对象的继承性(inheritance) 和面向对象具有的封装性(encapsulation)
一、继承性
继承,个人理解,就是一个对象直接使用另外一个对象的属性和方法。多个类中存在相同的属性和行为的时候,我们可以将这些具有相同内容的属性单独的抽取到一个独有的类中,这个类中的属性和内容是其他类中共有的。那么其他多个类的话就不需要再重新定义这些属性和行为方法,只需要继承那个共同的类就可以了。这个公有的类,可以称之为父类,也可以称之为超类或者基类,而其他的类就称之为子类。
比较像集合中的从属于关系,例如,狗属于动物,就可以看成狗类基础了动物类,那么狗类就是动物类的子类,动物就是狗类的父类。需要注意的是,在JAVA中,继承都是单继承的,其意思就是说,一个子类的话,只有有且仅有一个父类。
例如:
父类:动物类
public class Animal{
public int age;
public String name;
public void eat(){
System.out.println("动物具有吃东西的本领!");
}
}
//子类:狗类
public class Dog extends Animal {
}
在新的子类中,可以吸收已有类的属性和行为,并且能扩展其新的能力,父类是子类的一般化,子类是父类的具体化。并且,JAVA的继承特征中,可以多层继承,子类具有一个父类,而此父类,可以继承它本身的上一层父类,这样的话,该子类即也可以同样继承该父类的父类,类似继承爷爷辈的类。
Java继承的优点
Java的继承是基于多个重复代码的提出,这样的话,就可以很好的提高代码的复用率,在使用java中,继承的使用,是实现多态类操作的前提,其关键字是extends。继承避免了对一般类和特殊类之间的共同特征进行重复的描述,同时继承可以清晰的表达美一项共同特征所适应的范围,在一般类中定义的属性和操作适应于这个类本身以及它以下的每一层特殊类的全部对象。利用其优点,可以使得系统的模型更加的简练,清晰。
当然,其优点在于可以统一更改父类的参数值,其缺点也同样,假如父类发生了变化的话,这些相应获取的子类,会同样发生相应的变化。
二、封装性
属性是能够描述事物的特征,方法是能够描述事物的动作。封装就是把同一类事物的共性,包括属性和方法归于同一个类中,方便使用。即将事物的某些特征信息隐藏起来,
其优点在于,实现类专业的分工,良好的封装能够减少其耦合性,类内部的结构可以根据需要自由的修改,使其对成员更加具有精确的控制,隐藏信息,实现更加具体的细节。
其访问权限修饰符为private 在定义其成员变量时,使用修饰符private进行修饰,同时对外提供set,get方法,【注意】使用类修饰符private进行修饰的成员变量,在其他的类中不能直接访问,此时需要通过调用set,get方法进行使用。 |
|