大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Java面向?qū)ο?/div>
Java異常
Java數(shù)組
Java常用類
Java集合
Java IO流
Java線程
Java反射
Socket編程
Java注解開(kāi)發(fā)
Java GoF設(shè)計(jì)模式
HashMap
Java內(nèi)存模型
Java線性表

Java抽象類

把所有的三角形抽象類三角形類, 把所有的圓形抽象為圓形類,把所有的矩形抽象為矩形類, 把所有的三角形/圓形/矩形等所有平面圖形抽象為平面圖形類。

在平面圖形類, 可以進(jìn)行對(duì)平面圖形求面積/求周長(zhǎng)等操作, 但是不同的圖形有不同的求法, 在平面圖形類中, 求面積/求周長(zhǎng)的操作沒(méi)法具體實(shí)現(xiàn). 就像所有的動(dòng)物都會(huì)動(dòng), 不同的動(dòng)物動(dòng)的方式不同,動(dòng)物類有這個(gè)操作,也沒(méi)法具體實(shí)現(xiàn)。

當(dāng)一個(gè)類的某個(gè)操作沒(méi)法具體實(shí)現(xiàn)時(shí),這個(gè)操作可以定義為抽象方法。

抽象方法使用abstract修飾的方法,只有方法的聲明部分,沒(méi)有方法體。

package com.wkcto.chapter01.abstracttest.demo01;
/**
 * 定義平面圖形 類
 * 		該類有對(duì)平面圖形求面積,求周長(zhǎng)的操作
 * 
 * 1) 當(dāng)一個(gè)類的某個(gè)操作沒(méi)法具體實(shí)現(xiàn)時(shí), 這個(gè)操作可以定義為抽象方法
 * 2) 使用abstract修飾的方法為抽象方法, 只有方法的聲明,沒(méi)有方法體
 * 3) 含有抽象方法的類必須定義為抽象類
 * @author 蛙課網(wǎng)
 *
 */
public abstract class Graphics2d {
	//定義抽象方法,求面積
	public abstract double getArea();
	//定義抽象方法,求周長(zhǎng)
	public abstract double getPerimeter();
	
}
package com.wkcto.chapter01.abstracttest.demo01;
/**
 * 定義矩形類
 * 
 * 	1) 子類繼承了抽象類, 需要在子類中重寫(xiě)抽象類的抽象方法
 * @author 蛙課網(wǎng)
 *
 */
public class Rectangle extends Graphics2d {
	int width;
	int height;
	
	public Rectangle(int width, int height) {
		super();
		this.width = width;
		this.height = height;
	}

	@Override
	public double getArea() {
		return width*height;
	}

	@Override
	public double getPerimeter() {
		return 2*(width+height);
	}

}
package com.wkcto.chapter01.abstracttest.demo01;
/**
 * 測(cè)試類,
 * 	定義一個(gè)方法,可以顯示任意平面圖形的面積與周長(zhǎng)
 * @author 蛙課網(wǎng)
 *
 */
public class Test {

	public static void main(String[] args) {
		//創(chuàng)建矩形 對(duì)象
		Rectangle rect = new Rectangle(10, 5);
		//方法的形參graphics2d是一個(gè)父類引用,在調(diào)用方法時(shí), 可以傳遞子類對(duì)象
		showInfo(rect);
		
		//創(chuàng)建圓形對(duì)象
		Circle c1 = new Circle(10);
		showInfo(c1);
	}

	//	定義一個(gè)方法,可以顯示任意平面圖形的面積與周長(zhǎng)
	public static void showInfo( Graphics2d graphics2d) {
		System.out.println("平面圖形的信息------------------");
		System.out.println("面積:" + graphics2d.getArea());
		System.out.println( "周長(zhǎng):" + graphics2d.getPerimeter());
	}
}
package com.wkcto.chapter01.abstracttest.demo01;
/**
 * 定義三角形類
 * 		如果子類繼承了抽象類, 沒(méi)有重寫(xiě)所有的抽象方法,那么子類也需要定義為抽象類
 * @author 蛙課網(wǎng)
 *
 */
public abstract class Triangle extends Graphics2d {
	int a;
	int b;
	int c;
	
	@Override
	public double getPerimeter() {
		return a+b+c;
	}
}
package com.wkcto.chapter01.abstracttest.demo01;
/**
 * 測(cè)試抽象類的特點(diǎn):
 * 	1) 只要使用abtract修飾的類就是抽象類
 * 	2) 含有抽象方法的類必須定義 為抽象類,但是,抽象類中不一定含有抽象方法
 * 		有時(shí),對(duì)現(xiàn)有的類進(jìn)一步抽象形成更高層級(jí)的類(更抽象的類),如食物類,動(dòng)物類, 它們是沒(méi)法實(shí)例化,這種情況下,可以定義為抽象類
 * 	3) 抽象類是一種引用數(shù)據(jù)類型, 可以定義變量, 但是抽象類不能實(shí)例化對(duì)象,
 * 		抽象類定義引用可以賦值子類對(duì)象
 * 	4) 抽象類肯定含有構(gòu)造方法, 子類創(chuàng)建對(duì)象時(shí)調(diào)用子類構(gòu)造方法,子類構(gòu)造方法體執(zhí)行前會(huì)先執(zhí)行父類的構(gòu)造方法
 * 	5) abstract與final不能同時(shí)使用
 * @author 蛙課網(wǎng)
 *
 */
public class Test02 {
	public static void main(String[] args) {
		//使用抽象類定義一個(gè)變量
		Graphics2d graphics2d;
//		graphics2d = new Graphics2d();;//Cannot instantiate the type Graphics2d
		
		Rectangle rectangle = new Rectangle(10, 5);
		
		//抽象類引用可以賦值子類對(duì)象
		graphics2d = rectangle;
		graphics2d = new Rectangle(5, 2);
		
		
	}
}

練習(xí): 主人喂養(yǎng)寵物,寵物就賣萌

package com.wkcto.chapter01.abstracttest.demo02;
/**
 * 寵物類
 * 		賣萌
 * @author 蛙課網(wǎng)
 *
 */
public abstract class Pet {
	//賣萌
	public abstract void sellMeng() ;
}
package com.wkcto.chapter01.abstracttest.demo02;
/**
 * 小狗是寵物
 * @author 蛙課網(wǎng)
 *
 */
public class Dog extends Pet {

	@Override
	public void sellMeng() {
		System.out.println("汪汪汪~(yú)~~~");
	}

}
package com.wkcto.chapter01.abstracttest.demo02;
/**
 * 主人類
 * @author 蛙課網(wǎng)
 *
 */
public class Master {
	//喂寵物
	public void feed( Pet  pet) {
		//寵物賣萌
		pet.sellMeng();
	}
}
package com.wkcto.chapter01.abstracttest.demo02;
/**
 * 測(cè)試主人喂寵物,寵物就賣萌
 * @author 蛙課網(wǎng)
 *
 */
public class Test {

	public static void main(String[] args) {
		Master xiaoxi  = new Master();
		
		Dog dog = new Dog();
		xiaoxi.feed(dog);
		
		Cat cat = new Cat();
		xiaoxi.feed(cat);
	}

}

練習(xí):

憤怒的小鳥(niǎo), 紅火(紅顏色的鳥(niǎo))可以正常飛行 , 藍(lán)冰(藍(lán)顏色的鳥(niǎo))可以一個(gè)變?nèi)齻€(gè), 黃風(fēng)(黃顏色的鳥(niǎo))可以加速飛行,  定義一個(gè)彈弓類,有一個(gè)彈射的方法 ,可以把鳥(niǎo)給射出去, 鳥(niǎo)在飛。

主站蜘蛛池模板: 国产综合亚洲精品一区 | 香港之夜免费观看 | 日韩中文字幕精品一区在线 | 九九热精品视频在线播放 | 成人一级黄色毛片 | 四虎影视精品 | 久久久国产亚洲精品 | 欧洲毛片| 99久久久久国产 | 五月婷婷激情六月 | 国内精品久久久久久久久久久久 | 久热精品男人的天堂在线视频 | 久久久免费精品视频 | 久久大香伊蕉在人线观看热2 | 色淫影院 | 国产精品好好热在线观看 | 男人都懂www深夜免费网站 | 视频一区在线播放 | 中文字幕视频免费在线观看 | 欧美三级成人观看 | 成人精品视频在线观看 | a级毛片在线视频免费观看 a级免费网站 | 999精品影视在线观看 | 亚洲欧美日韩在线 | 99久久国产综合精品女不卡 | 在线播放精品一区二区啪视频 | 国产成人精品免费视频大全办公室 | 激情综合欧美 | 香港一级a毛片在线播放 | 国产色婷婷视频在线观看 | 亚洲欧美强伦一区二区另类 | 搡女人免费的视频 | 日本人又黄又爽免费视频 | 久久99精品久久久久久国产人妖 | 四虎永久免费在线观看 | 日本久久中文字幕精品 | 2020亚洲欧美日韩在线观看 | 久久99精品国产一区二区三区 | 国产成+人+亚洲+欧美+日韩 | 亚洲美女激情视频 | 12至16末成年毛片 |