Java访问权限

一、访问权限:


二、示例代码:

父类:People.java

package com.wbf.test;

public class People {
	
	public void eat(){
		System.out.println("People-->public void eat()");
	}
	
	protected void run(){
		System.out.println("People-->protected void run()");
	}
	
	void say(){
		System.out.println("People-->default void say()");
	}
	
	private void study(){
		System.out.println("People-->private void study()");
	}
}

同包,子类:Student.java

package com.wbf.test;

/**
 * 同包,子类
 * public-->eat()
 * protected-->run()
 * default-->say()
 * private-->study()
 */
public class Student extends People {
	
	public void test(){
		
		Student s = new Student();
		s.eat();
		s.run();
		s.say();
		//s.study();
		
		//******************************
		
		People p = new People();
		p.eat();
		p.run();
		p.say();
		//p.study();
	}
}

同包,非子类:Programmer.java

package com.wbf.test;

/**
 * 同包,非子类
 * public-->eat()
 * protected-->run()
 * default-->say()
 * private-->study()
 */
public class Programmer {
	
	public void test(){
		
		People p = new People();
		p.eat();
		p.run();
		p.say();
		//p.study();
	}
}

不同包,子类:Teacher.java

package com.wbf.test1;

import com.wbf.test.People;

/**
 * 不同包,子类
 * public-->eat()
 * protected-->run()
 * default-->say()
 * private-->study()
 */
public class Teacher extends People {

	public void test(){
		
		Teacher t = new Teacher();
		t.eat();
		t.run();
		//t.say();
		//t.study();
		
		People p = new People();
		p.eat();
		super.run();//p.run();
		//p.say();
		//p.study();
	}
}

不同包,子类:Worker.java

package com.wbf.test1;

import com.wbf.test.People;

/**
 * 不同包,子类
 * public-->eat()
 * protected-->run()
 * default-->say()
 * private-->study()
 */
public class Worker extends People {

	public void test(){
		
		Worker w = new Worker();
		w.eat();
		w.run();
		//w.say();
		//w.study();
		
		Teacher t = new Teacher();
		t.eat();
		//t.run();
		//t.say();
		//t.study();
		
		People p = new People();
		p.eat();
		super.run();//p.run();
		//p.say();
		//p.study();
	}
}

不同包,非子类:Driver.java

package com.wbf.test2;

import com.wbf.test.People;

/**
 * 不同包,非子类
 * public-->eat()
 * protected-->run()
 * default-->say()
 * private-->study()
 */
public class Driver {
	
	public void test(){
		
		People p = new People();
		p.eat();
		//p.run();
		//p.say();
		//p.study();
	}
}

 

二、解释说明:
1).public:表示属性或方法是公开的,任何其他类中都可以访问

2).protected:表示本包可以访问、子类可以继承。某类的protected属性或方法在该类所在的包之外是无法通过该类的实例化对象进行访问的。其子类所访问的是子类从父类继承下来的protected属性或方法,不是父类本身的。

3).default:表示本包可以访问、子类可以继承。某类的protected属性或方法在该类所在的包之外是无法通过该类的实例化对象进行访问的。其子类也不能够访问从父类继承下来的protected属性或方法,这是protected和default的区别所在

4).private:表示属性或方法是私有的,只有自身可以访问

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值