根据前面讲解的内容我们可以总结出面向对象的特征。
面向对象的特征
1.多态
相同的方法可以在特定的情况下有不同的表达方式。比如
class A(){
void f1(){
System.out.println("A");
}
}
class B extends A{
void f1(){
System.out.println("B");
}
void f1(String a){
System.out.println(a);
}
}
A,B类虽然都有 f1 方法,但是引用的对象如果是A类的,将会输出 A ;引用的对象如果是B类的,将会输出 B 。 引用的对象如果是B类的并传入一个字符串对象时,将输出字符串。
这使得我们可以使用一个方法,根据引用的对象不同从而产生不同的效果。Java中接口就是多态的具体表现之一。
2.封装
所有的内容都封装在容器中。
使得代码模块化,像积木一样,当我们需要实现特定功能,可以直接选取封装好的代码。
并且由于所有代码都被封装,所以访问特定的代码时,我们可以为其添加访问限制。限制外部内容随意访问代码。也防止了外部代码与被封装代码进行混淆而起到保护的作用。
class A{
//类中内容
}
class B{
//类中内容
}
当我们使用A类时,B类不会收到影响。
3.继承
所有类都至少有一个父类,并且子类将继承父类的属性以及方法,这使得类与类之间拥有一些相同的共性。这使得相同的共性当父类是现实,我们将无需在子类重复编写。节约了编写代码的时间
class A{
void f1(){
}
}
class B extends A{
//当子类B允许访问父类A中的f1时我们不需要再写一遍f1()
}