您的位置:首页 > 编程语言 > Java开发

Java基础 - 内部类的结构、用法实例

2014-03-30 14:24 316 查看
一、定义

在一个类内部的类称为内部类。

二、作用

信息隐藏、实现多继承。

三、例子

package iijesus.java.basic;

/**
* 内部类的结构、用法实例
* 业务需求:让投资者Investor继承赌徒Gambler和工人Worker的买卖方法,同时实现庄家Banker的买卖方法,达到多继承的目的。
* 注意:Gambler、Worker和Banker的买卖方法名是一样的,避免调用混乱。
*/

//庄家接口,有买、卖方法
interface Banker
{
public void buy();
public void sell();
}

//赌徒类,有买、卖方法
class Gambler
{
void buy()
{
System.out.println("gambler buying...");
}
void sell()
{
System.out.println("gambler selling...");
}
}

//工人类,有买、卖方法
class Worker
{
void buy()
{
System.out.println("worker buying...");
}
void sell()
{
System.out.println("worker selling...");
}
}
//投资者类,有买、卖方法
public class Investor
{
//投资者继承赌徒的买卖方法
private class GamblerSon extends Gambler
{
void buy()
{
super.buy();
}
void sell()
{
super.sell();
}
}
//投资者继承工人的买卖方法
private class WorkerSon extends Worker
{
void buy()
{
super.buy();
}
void sell()
{
super.sell();
}
}
//投资者实现庄家的买卖方法
private class BankerSon implements Banker
{
public void buy()
{
System.out.println("banker buying...");
}
public void sell()
{
System.out.println("banker selling...");
}
}
//投资者的买方法
public void buy(String type)
{
if(type.equals("gambler"))
{
new GamblerSon().buy();
}
else if(type.equals("banker"))
{
new BankerSon().buy();
}
else if(type.equals("worker"))
{
new WorkerSon().buy();
}
}
//投资者的卖方法
public void sell(String type)
{
if(type.equals("gambler"))
{
new GamblerSon().sell();
}
else if(type.equals("banker"))
{
new BankerSon().sell();
}
else if(type.equals("worker"))
{
new WorkerSon().sell();
}
}
//调用各个继承者的买卖方法
public static void main(String[] args)
{
Investor investor = new Investor();
investor.buy("worker");
investor.buy("gambler");
investor.buy("banker");

investor.sell("worker");
investor.sell("gambler");
investor.sell("banker");

}
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: