一、封装
封装是指隐藏对象的属性及实现细节,对外仅提供接口可见。封装实现了信息隐藏,利于软件复用。其优点是达到了模块化的标准,从而提高了代码的复用程度。在某种程度上,封装也大大改善了软件开发的可维护性,降低了构建复杂软件系统的风险。
public class TV {
private int volume;
private int color;
public int getVolume() {
return volume;
}
public void setVolume(int volume) {
this.volume = volume;
}
public int getColor() {
return color;
}
public void setColor(int color) {
this.color = color;
}
public void turnOn(){
turnOn_impl();
}
//开机内部实现
private void turnOn_impl(){
//...
}
}
上面代码定义了一个电视机类TV,包含两个属性:音量volume,颜色color,还定义了一些方法。从类的属性可以看到,音量volume、颜色color属性均定义成private私有类型,只能通过相关方法对其操作。类TV对其属性volume、color实现了封装。
二、继承
继承是指一个类是从另一个类派生而来的,派生类自动具有了被继承类的所有特性。被继承类称为父类,继承父类的类称为子类。继承可以是子类具有父类的各种属性和方法,而不需要再次编写相同的代码。继承也极大地促进了软件的复用,而且继承的形式可以更加复杂。
public class GeneralTV extends TV{
public static void main(String[] args) {
GeneralTV tv = new GeneralTV();
tv.setVolume(1);
System.out.println(tv.getVolume());
}
}
GeneralTV继承了TV,因此拥有TV的属性和方法。
三、多态
多态是指对于一种服务功能,可以具有不同的实现方式,即多种形态。多态形象地描述了现实世界的复杂形态,使程序具有良好的扩展性。在继承的基础上,方法重载是实现多态的方式之一。
public class Human {
public void sayHello(){
}
}
class Chinese extends Human{
public void sayHello(){
System.out.println("您好");
}
}
class American extends Human{
public void sayHello(){
System.out.println("hello");
}
}
class testclass{
public static void main(String[] args) {
Chinese c = new Chinese();
c.sayHello();
American a = new American();
a.sayHello();
}
}
以上代码首先定义了父类Human,只具有一个方法,方法没有具体的实现。然后分别定义了两个子类Chinese和American,均继承类Human,并且都对sayHello方法实现了重写,具有各自不同的实现方式。