封装,继承,多态是面向对象的三大特征。
一:封装
我们家里的电视机,里面有各种电路板,和电子元器件,这些电路板和元器件都被装到了电视机的壳里,相当于被封装起来了,对外提供一个开关按钮,我们一按按钮就可以打开电视。电视机生产厂商不允许我们操作电视机内部的东西,而提供给我们一个开关按钮,我们可以通过这个按钮来操作电视机壳里面的东西,这就是封装。对应到程序代码里面,封装可以体现在很多方面,比如方法就是一个封装,在方法中有很多代码,我们只需要通过方法名就可以调用这些代码,相当于将这些代码封装到了方法中。属性也是体现封装的一个典型例子,我们可以给类中的变量一个私有的访问修饰符,相当于把这个变量封装起来,在类的外部就没法直接访问它,通过提供 get和set方法就可以完成对这个变量的存取操作。
public class Student {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
二:继承
程序中的继承和我们生活中的继承不同,程序中的继承 指的是一个类继承了另一个类,就具有了该类所有非私有的属性和方法。就可以像调用自己的属性和方法一样去调用。被继承的类叫父类,继承父类的类叫子类。
三:多态
多态指的是一个对象可以体现出多种形态,比如猫类继承了动物类,那么猫可以体现出两种形态,一种是猫,一种是动物。具体到代码里面通常指的是将子类对象赋给父类类型,在子类里面重写父类里的方法,调用方法的时候执行的是子类里面的方法。在这里,当父类类型的变量被赋子类类型不同时,调用不同子类对象的方法,所以多态也可以说明为:对于同一个方法调用产生不同的结果。
class Animal {
public void eat(){
System.out.println("吃东西!");
}
}
class Cat extends Animal {
public void eat(){
System.out.println("猫吃鱼");
}
}
class Dog extends Animal {
public void eat(){
System.out.println("狗啃骨头");
}
}