java中子类继承父类时获得父类成员继承规则是什么
3个回答
展开全部
权限public > 包(package,默认,也就是什么权限修饰符都不加) > proteced > private
子类继承了父类的所有成员(这样说实际是不对的),但只能访问父类的非private成员。你可以认为子类持有一个名为supper的父类实例。
当父类和子类方法发生覆盖式,子类可以显式地用supper调用父类的同名方法。
//父类
public class Futher {
public static String _CN = Futher.class.getName();
public Futher(){
System.out.println(_CN + " - public Futher()" );
}
public Futher(int i){
this.privateInt = i;
System.out.println(_CN + " - public Futher(int " + i + ")");
}
private void privateMethod(){}
protected void protectedMethod(){}
public void publicMethod(){}
void packageMethod(){}
private int privateInt = 0;
protected int getPrivatInt(){
System.out.println(_CN + " - privateInt:" + privateInt);
return privateInt;
}
}
//子类
public class Son extends Futher{
public static String _CN = Son.class.getName();
public Son(){
System.out.println(_CN + " - public Son()");
}
public Son(int i){
super(i);
System.out.println(_CN + " - public Son(int " + i + ")");
}
public static void main(String[] args){
Son son = new Son();
son.packageMethod();
son.publicMethod();
son.protectedMethod();
int futherPrivateInt = son.getPrivatInt();
Son son2 = new Son(futherPrivateInt + 1);
}
}
子类继承了父类的所有成员(这样说实际是不对的),但只能访问父类的非private成员。你可以认为子类持有一个名为supper的父类实例。
当父类和子类方法发生覆盖式,子类可以显式地用supper调用父类的同名方法。
//父类
public class Futher {
public static String _CN = Futher.class.getName();
public Futher(){
System.out.println(_CN + " - public Futher()" );
}
public Futher(int i){
this.privateInt = i;
System.out.println(_CN + " - public Futher(int " + i + ")");
}
private void privateMethod(){}
protected void protectedMethod(){}
public void publicMethod(){}
void packageMethod(){}
private int privateInt = 0;
protected int getPrivatInt(){
System.out.println(_CN + " - privateInt:" + privateInt);
return privateInt;
}
}
//子类
public class Son extends Futher{
public static String _CN = Son.class.getName();
public Son(){
System.out.println(_CN + " - public Son()");
}
public Son(int i){
super(i);
System.out.println(_CN + " - public Son(int " + i + ")");
}
public static void main(String[] args){
Son son = new Son();
son.packageMethod();
son.publicMethod();
son.protectedMethod();
int futherPrivateInt = son.getPrivatInt();
Son son2 = new Son(futherPrivateInt + 1);
}
}
展开全部
new 父类()。进行调用即可
或者
new 子类(),调用public 和 protect 修饰的变量和方法即可
或者
new 子类(),调用public 和 protect 修饰的变量和方法即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
继承父类的属性和方法··public 和 protect 修饰的变量和方法即可
但不能继承构造器··
想访问父类的构造器只能使用super.
但不能继承构造器··
想访问父类的构造器只能使用super.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询