public/private/protected/默认(friendly)的区别解释
什么都不写默认为friendly
在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友。下图同包:包括子类和非子类
1.首先是public修饰符来修饰的函数,是指这个函数可以被其他的类来调用,也可以被自己类里的函数来调用。
2.再看protected修饰符来修饰的函数,是指这个函数可以被继承类调用,也可以被自己类里的函数调用,但不能被其他的类调用。
3.用private修饰符来修饰的函数,就具有更少的权限了,只能被自己类里的其他函数调用,其他的一概不能调用。
派生类可以访问基类中所有的非私有成员。因此基类成员如果不想被派生类的成员函数访问,则应在基类中声明为 private。
我们可以根据访问权限总结出不同的访问类型,如下所示
自己的理解:
针对不同包之间的继承关系:
当我们只想在本类中使用这个变量或者方法的时候,我们可以用private修饰
当我们还想再他继承的方法中使用这个变量或者方法的时候,我们需要加上protected
当我们在外部实例化某个子类想要获取这个变量或者方法的时候,我们需要加上public
default\protected\public在同一个包内都可以访问,这里的可以访问是指可以创建对象然后用对象对其进行调用
我想给她买兰博基尼