public 公共的
private 私有的
protected 保护的
友好变量和友好方法:除public、private、protected 修饰的变量和方法
子类与父类在同一个包下
则能继承除private的成员变量和成员方法。
子类和父类不在同一个包下
则能继承public、protected的方法和变量,不能继承友好方法和变量。
对于多重继承的子类
例如:Father、Son、GrandSon
package Test1;
public class Father {
private int money;
protected int height;
int weight;
}
package Test2;
import Test1.Father;
public class Son extends Father {
public String hand;
public String getHand() {
return hand;
}
}
package Test3;
import Test2.Son;
public class GrandSon extends Son {
public String foot;
}
主类
package Test1;
import Test2.Son;
import Test3.GrandSon;
public class Examp_1 {
public static void main(String[] args) {
Son son=new Son();
GrandSon grandson=new GrandSon();
son.height=180;
son.hand="一双大手";
grandson.height=155;
grandson.hand="一双小手";
grandson.foot="一双小脚";
String str = son.getHand();
System.out.printf("儿子:%s,%d\n",str,son.height);
str=grandson.getHand();
System.out.printf("孙子:%s,%s,%d\n",str,grandson.foot,grandson.height);
}
}
Son
可继承Fanther中的height
自己写了hand、gethand()
GrandSon
可继承Son的hand、gethand()和Father中的height
自己写了foot
访问权限
对象在能不能使用继承、自建的方法和变量
对保护型protected
直接继承height的Son创建的对象的主类在Son类里,可调用height
直接继承height的Son创建的对象的主类和Son在同一个包里,不可调用height
创建对象的主类和拥有proteceted的父类Father在一个包下,可调用height
创建对象的主类和拥有proteceted的父类Father在不在一个包下,不可调用height
对友好型的变量和方法要在同一个包下才能继承
自建型
创建对象的主类和Son在一个包下,可调用a
创建对象的主类和Son在不在一个包下,不可调用a
继承
子类与父类在同一个包下,才能继承友好型变量(方法) weight。
创建对象的主类和Son2在同一个类中,可调用weight
创建对象的主类和Son2在同一个包中,可调用weight
创建对象的主类和Son2在不在同一个包中,不可可调用weight
public声明的变量和方法无限制