中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

java 多重繼承

生活中有沒有這樣一種例子,有一樣東西既是一種東西,又可以是另一種東西,比如平板電腦,它既可以實現手機的功能,又可以實現電腦的功能,這正好就體現了多重繼承了。
先來聲明一個(ge)手機的(de)抽象(xiang)類

abstract class Phone{
	abstract void call();
	abstract void watchMovie();
	abstract void playGames();
}

然(ran)后我(wo)們(men)再(zai)來(lai)聲(sheng)明一個電腦的抽象類

abstract class PC{
	abstract void writeProgram();
	abstract void playGames();
	abstract void chatWithFriend();
}

電腦上可以玩游戲,寫軟件,和朋友聊天什么的
那么我們再來創建一個平板電腦的類,那平板電腦可以通過一種什么樣的方式來實現同時繼承這兩個類的方法呢?
我(wo)們可以通過(guo)內部類來(lai)實現它

class OuterPanelComputer extends Phone{

	@Override
	public void call() {
		// TODO Auto-generated method stub
		System.out.println("call");
	}

	@Override
	public void watchMovie() {
		// TODO Auto-generated method stub
		System.out.println("watchMovie");
	}

	@Override
	public void playGames() {
		// TODO Auto-generated method stub
		System.out.println("playGames");
	}
	class PanelComputer extends PC{

		@Override
		public void writeProgram() {
			// TODO Auto-generated method stub
			System.out.println("writeProgram");
		}

		@Override
		public void playGames() {
			// TODO Auto-generated method stub
			System.out.println("playGames");
		}

		@Override
		public void chatWithFriend() {
			// TODO Auto-generated method stub
			System.out.println("chatWithFriend");
		}
		public void call() {
			// TODO Auto-generated method stub
			OuterPanelComputer.this.call();
		}

		public void watchMovie() {
			// TODO Auto-generated method stub
			OuterPanelComputer.this.watchMovie();
		}
	}
}

注意這里內部類在復寫的call和watchmovie方法里調用了外部類的call 和watchmovie
由于內部類(lei)是(shi)(shi)可以訪(fang)問到外部類(lei)的(de)(de)所有的(de)(de)方(fang)法(fa)的(de)(de),所以,這(zhe)里我們創建(jian)一個內部類(lei)的(de)(de)對象的(de)(de)話(hua),實際上也(ye)可以看作是(shi)(shi)在創建(jian)一個繼(ji)承兩個類(lei)的(de)(de)類(lei),也(ye)就是(shi)(shi)偽多重繼(ji)承。

public static void main(String[] args) {
		// TODO Auto-generated method stub
		OuterPanelComputer outerpanelcomputer = new OuterPanelComputer();
		OuterPanelComputer.PanelComputer panelcomputer = outerpanelcomputer.new PanelComputer();
		panelcomputer.chatWithFriend();
		panelcomputer.playGames();
		panelcomputer.watchMovie();
		panelcomputer.call();
		panelcomputer.writeProgram();
	}
}

這樣的話,就能實現多重繼承了,實際(ji)上(shang)我們也是在操控內部類(lei)。

posted @ 2016-10-16 17:54  浩大王  閱讀(2936)  評論(0)    收藏  舉報