Java中类定义的protected方法,其对象可以访问这些方法,C++中对象不可以访问protected函数;
Java中引用是父类A,对象是子类B的话,如A a=new B();a访问父类和子类都有的方法,访问的是子类的,可以访问A类的所有方法,但是不能访问B类独有的方法。
在C++中,A父类,A a,B是A的子类,B b,A *a=&b调用A、B都有的函数的时候,如果该函数不是虚函数,调用的是父类A的函数,是虚函数的话调用子类B的函数,a可以调用A类中所有的函数,不能调用B类独有的函数。
Java中继承的访问权限:
public protected default private
类内部 可以 可以 可以 可以
本包 可以 可以 可以 X
子类 可以 可以 X X
外部包 可以 X X X
C++中继承的访问权限:
基类中 继承方式 子类中
public & public继承 => public
public & protected继承 => protected
public & private继承 => private
protected & public继承 => protected
protected & protected继承 => protected
protected & private继承 => private
private & public继承 => 子类无权访问
private & protected继承 => 子类无权访问
private & private继承 => 子类无权访问