封装:1.包装,例如我们将一些常用的功能进行抽取 定义成一个方法
2.隐藏,对类中的成员对外是否可见进行控制
比如:private String name 其中的name不可以被访问但是可以创建get set 方法里面添加if语句进行控制即可
继承:顾名思义
子类不能直接访问父类中私有的属性
多态:父类引用指向子类的对象,产生多种形态
比如Animal dog=new Dog();
Animal cat=new Cat();
将dog cat变量变成Animal的类型,在对方法的使用时可以更加简便只用Animal类型就可以代替。
注意:因为上升为父类类型,所以只能调用父类中的方法。
在编译期间看左边 运行期间看右边(所以是先看子类有没有,没有再去找父类)
特殊:静态方法和成员变量(命名相同)都是看左边。
子类因为向上转型了所以调用不到子类中特殊的方法,所以该怎么解决呢?
答:向下转型,如 Dog d=(Dog)dog;只能时父子类之间