public private protected 三者的区别
时间: 2024-05-31 22:13:33 浏览: 144
public、private、protected 是 Java 中的访问修饰符,它们的主要作用是控制类中的成员变量、成员方法的访问权限。
public:表示该成员在任何地方都可以访问。
private:表示该成员只能在当前类中访问,其他任何类都不能访问。
protected:表示该成员只能在当前类及其子类中访问,其他任何类都不能访问。
总结一下,public、private、protected 是用来控制对类中成员的访问权限的,而这种访问权限主要表现在继承与其他类之间的关系上。
相关问题
class HttpSessionNode:public virtual RefBase, public HttpSession::Callback, public PoTimer::Callback, public UniqueLinkNode<HttpSessionNode>{ public: class Callback: public virtual RefBase { public: virtual i32 onNotifyChannelData(const i8* uuid, const i8* areacode, const i8* buf, i32 buflen) = 0; }; public: HttpSessionNode(const sp<Callback> &f); ~HttpSessionNode(); void onHttpSessionArrived(); void onHttpSessionArouse(); void onHttpSessionFailed(const i8*e); void onTimerTimeUp(int count); bool replyOK(const char* info); bool create(const sp<FD> &fd); bool stop(); private: sp<PoTimer> m_timer; wp<Callback> m_cb; sp<HttpSession> m_session; i32 m_state; i8 m_cmdType; i8 m_subCmd; u32 m_commandID; protected: void procChanelInfo(const i8* uuid, const i8* areaCode, const i8* buf, i32 buflen); void responseCommand(); };
这段代码是关于一个名为HttpSessionNode的类的定义,该类继承自RefBase类,并实现了HttpSession::Callback、PoTimer::Callback、UniqueLinkNode<HttpSessionNode>三个接口。该类的作用是处理HTTP会话,其中包括处理通道信息、响应HTTP请求等操作。在该类中,通过回调函数的方式实现了对外部调用者的通知。其中还包含了一个定时器(PoTimer)用于控制HTTP请求的超时时间。
编写 电话 移动电话 固体电话 体现三者之间的继承关系。电话包括属性:品牌,号码
好的,下面是一个简单的电话类继承关系的例子。其中,`Telephone` 是基类,`MobilePhone` 和 `LandlinePhone` 是派生类。
```java
public class Telephone {
protected String brand;
protected String number;
public Telephone(String brand, String number) {
this.brand = brand;
this.number = number;
}
public void call(String number) {
System.out.println("正在拨打电话:" + number);
}
}
public class MobilePhone extends Telephone {
private int batteryLife;
public MobilePhone(String brand, String number, int batteryLife) {
super(brand, number);
this.batteryLife = batteryLife;
}
public void sendSMS(String number, String message) {
System.out.println("正在发送短信:" + message + ",收件人:" + number);
}
}
public class LandlinePhone extends Telephone {
private String address;
public LandlinePhone(String brand, String number, String address) {
super(brand, number);
this.address = address;
}
public void transferCall(String number) {
System.out.println("正在转接电话:" + number);
}
}
```
在这个例子中,`Telephone` 基类定义了电话的共有属性和方法,包括品牌和号码,以及拨打电话的方法。`MobilePhone` 派生类继承了 `Telephone` 基类,并增加了电池寿命和发送短信的方法。`LandlinePhone` 派生类同样继承了 `Telephone` 基类,并增加了地址和转接电话的方法。
这样,我们就将电话、移动电话和固体电话之间的继承关系体现出来了。我们可以在 `main` 函数中创建不同类型的电话对象,并调用它们的方法:
```java
public class Main {
public static void main(String[] args) {
Telephone tel = new Telephone("Nokia", "123456789");
tel.call("987654321");
MobilePhone mobile = new MobilePhone("Apple", "987654321", 10);
mobile.call("123456789");
mobile.sendSMS("123456789", "Hello World!");
LandlinePhone landline = new LandlinePhone("Huawei", "1111111", "Beijing");
landline.call("2222222");
landline.transferCall("3333333");
}
}
```
输出结果如下:
```
正在拨打电话:987654321
正在拨打电话:123456789
正在发送短信:Hello World!,收件人:123456789
正在拨打电话:2222222
正在转接电话:3333333
```
阅读全文