面向对象三巨头:封装,继承,多态(也有说还有抽象的)
封装:大白话就是说把隐秘的,不想给别人看的的东西给封装起来,java中呢就是把实现的细节给封装了,留出特定的接口
java中提供了private 修饰符,像这样的:private int a;这个成员变量a在本类中可以随便用,但是出了这个类就不给你用了,
因为我已经声明了这是我私有的东西。要是想用也不是不可以,java也提供了可以对外的get/set方法,需要用的时候就可以先声明对象,比如:Student stru = new Studnet(); stu.getName();这样我们就可以获取name属性中的值,也可以stu.setName("嘻嘻");这样就给name属性赋值了
继承:我们生活中了解的继承都是大户人家,有钱有田有地皮可以留给后代的,子孙从父辈那里继承到的财产,在java语言中也有继承,也是从父类那继承
关键字:extends(继承):public class b extends a(){}:就是b继承了a,当然也会继承父类中的方法和属性,有说也可以继承父类私有的属性的,弱弱的说句既然你私有了我还继承的意义又是什么呢?,子类继承父类,权限要么一样,要不比父类的权限大,就是不能小,java中的继承是单继承,就是一个孩子只会有一个亲爸爸的意思,继承是(is-a)的关系,能不用就尽量不用,耦合度太高了,实在需要就用(has-a)组合关系;就是一个对象里有另一个对象
多态:多态的范围很广,继承也是多态的一种,子类的引用指向父类的实例,多态可以理解为多中形态
多态又分为了编译时多态和运行时多态;编译行多态呢是能后确定的值或者是类型,我理解的哈子类的引用指向父类的实例是运行时多态。而确定调用那个方法的时候就是编译时多态了