package baseDemo1;
/**
* 类之间的继承和访问
* */
public class Demo1 {
public void method1() {
}
protected void method2(){
}
void method3(){
}
private void method4(){
}
public static void main(String[] args){
/**
* Demo1访问同一个package中的类Demo5。
* Demo5不是public类
* 结论:类的修饰符public是针对不同包之间的访问
* 类修饰符,对本包之间的类访问,没有影响
* */
Demo5 d5 = new Demo5();
d5.method1(); //public OK
d5.method2(); //protected OK
d5.method3(); //default OK
//d5.method4(); //private Error
/**
* 访问不同package中的类Demo2
* 结论:只能访问不同package中的public类中的public成员
*/
baseDemo2.Demo2 d2 = new baseDemo2.Demo2();
d2.fun1(); //public OK
//d2.fun2(); //protected Error
//d2.fun3(); //default Error
//d2.fun4(); //private Error
/**
* Demo3继承同一个package中的类Demo1
* 同一个package中类的继承: 子类能继承父类除了private之外的所有成员
* */
Demo3 d3 = new Demo3();
d3.method1(); //public OK
d3.method2(); //protected OK
d3.method3(); //default OK
//d3.method4(); //private Error
/**
* Demo4继承不同的package中的类Demo2
* 不同package中,类的继承: 子类只能继承父类的public成员
* */
Demo4 d4 = new Demo4();
d4.fun1(); //public OK
//d4.fun2(); //protected Error
//d2.fun3(); //default Error
//d2.fun4(); //private Error
}
}
/**
* Demo3继承同一个package中的类Demo1
* */
class Demo3 extends Demo1{
}
/**
* Demo4继承不同的package中的类Demo2
* */
class Demo4 extends baseDemo2.Demo2{
}
class Demo5{
public void method1() {
}
protected void method2(){
}
void method3(){
}
private void method4(){
}
}
<strong>package baseDemo2;</strong>
public class Demo2 {
public void fun1(){
}
protected void fun2(){
}
void fun3(){
}
private void fun4(){
}
}