面向对象的三大特征分别为 封装、继承、多态
封装
封装把一类事物的特性封装为属性,行为封装为方法。提高了代码的安全性,便于代码管理
把不想被外界随便访问的属性用private修饰,使其不能被外界随便调用,对外界提供public的方法实现对属性的访问
class Student{
private String name;
private int age;
public void setName(String name){
this.name=name;
}
public String getName(){
return this.name;
}
public void setAge(int age){
this.age=age;
}
public int getAge(){
return this.age;
}
}
继承
把事物的共有属性抽取出来作为父类,其他类继承它。提高了代码的重用性
class A{
}
class B extends A{
}
继承的3个特点
单继承 一个子类只有一个直接父类
多重继承 Object类是所有类的父类,一个类的父类可以有父类
如果没有显示继承,那么隐式继承Object类
多态
编译时和运行时类型不一致的情况称为多态
编译时 看左边 运行时看右边
static修饰方法时 运行时也看左边
class Test {
public static void main(String[] args) {
A a=new B();
}
}
class Student{
}
class B extends A{
}
```此时a的编译时类型为A,运行时类型为B
如果在B类中写一个eat方法那么需要引用类型的强制转换
B b=(B) a;
再用b.eat();调用eat方法
因为a的编译时类型为A,运行时类型为B