public/private/protected/默认(friendly)的区别解释

什么都不写默认为friendly

在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友。下图同包:包括子类和非子类

1.首先是public修饰符来修饰的函数,是指这个函数可以被其他的类来调用,也可以被自己类里的函数来调用。

2.再看protected修饰符来修饰的函数,是指这个函数可以被继承类调用,也可以被自己类里的函数调用,但不能被其他的类调用。

3.用private修饰符来修饰的函数,就具有更少的权限了,只能被自己类里的其他函数调用,其他的一概不能调用。

派生类可以访问基类中所有的非私有成员。因此基类成员如果不想被派生类的成员函数访问,则应在基类中声明为 private。

我们可以根据访问权限总结出不同的访问类型,如下所示

自己的理解:

针对不同包之间的继承关系:

当我们只想在本类中使用这个变量或者方法的时候,我们可以用private修饰

当我们还想再他继承的方法中使用这个变量或者方法的时候,我们需要加上protected

当我们在外部实例化某个子类想要获取这个变量或者方法的时候,我们需要加上public

default\protected\public在同一个包内都可以访问,这里的可以访问是指可以创建对象然后用对象对其进行调用

posted @ 2018-10-04 19:06  yorkmass  阅读(294)  评论(0)    收藏  举报