Student类里面定义了两个公共的属性age和name,还有两个构造函数,一个是有参的一个是无参的,当调用无参构造函数时,创建对象时自动给对象赋值20和张三,当调用有参的构w造函数时可以自己动态输入要赋给变量的值。
c++中吧内存分为五个部分,student aa和student *p是两种完全不同的创建对象的方法,创建出来的对象被储存在两个不同的区域,创建原理也不同,所以student aa这种创建方法没法用delete aa把对象的内存释放
加了const,如果在函数体里加入 age = 20; 这一句会报错,防止你意外修改数据
先调用父类的构造函数,如果子类也有的话再用自己的。
隐藏:父类student有一个叫study的方法,本来会被子类postgraduate继承,但是因为我们在子类里又定义了一个同名方法,这种情况就叫做隐藏(用的很少,稍微理解)
重载是编译时决定:比如set(int a)和set(String b),在编译时编译器已经把他们当成两个完全不同的函数,已经决定了要调用哪一个;
多态是运行时决定:由于三个study方法都没有参数,所以编译器在编译时无法判断具体要调用哪一个,就把三个函数都加载进内存里,在内存里形成一张虚函数表,等到具体指针调用时在去寻找对应的函数
纯虚函数:只有声明没有定义
抽象类:可以有不同的方法,但方法中至少要有一个是纯虚函数