2. 被重写的⽅法不能为private
3. 静态⽅法不能被重写为⾮静态的⽅法
4. 重写⽅法的访问修饰符⼀定要⼤于被重写⽅法的访问修饰符(public>protected>default>private)
2、overload是重载,这些⽅法的名称相同⽽参数形式不同
⼀个⽅法有不同的版本,存在于⼀个类中。
规则:
1. 不能通过访问权限、返回类型、抛出的异常进⾏重载
2. 不同的参数类型可以是不同的参数类型,不同的参数个数,不同的参数顺序(参数类型必须不⼀样)
3. ⽅法的异常类型和数⽬不会对重载造成影响
使⽤多态是为了避免在⽗类⾥⼤量重载引起代码臃肿且难于维护。
重写与重载的本质区别是,加⼊了override的修饰符的⽅法,此⽅法始终只有⼀个被你使⽤的⽅法。
new 和 malloc
1、new内存分配失败时,会抛出bac_alloc异常,它不会返回NULL;malloc分配内存失败时返回NULL。
2、使⽤new操作符申请内存分配时⽆须指定内存块的⼤⼩,⽽malloc则需要显式地指出所需内存的尺⼨。
3、opeartor new /operator delete可以被重载,⽽malloc/free并不允许重载。
4、new/delete会调⽤对象的构造函数/析构函数以完成对象的构造/析构。⽽malloc则不会
5、malloc与free是C++/C语⾔的标准库函数,new/delete是C++的运算符
6、new操作符从⾃由存储区上为对象动态分配内存空间,⽽malloc函数从堆上动态分配内存。
表格
评论1
最新资源