java編程abstract類和方法詳解
抽象類和抽象方法常用知識點:
(1)抽象類作為被繼承類,子類必須實現(xiàn)抽象類中的所有抽象方法,除非子類也為抽象類。
也就是說,如果子類也為抽象類,可以不實現(xiàn)父類中的抽象方法。但是,如果有一個非抽象類
繼承于抽象子類,需要實現(xiàn)抽象子類,抽象子類的抽象父類的所有抽象方法,新帳舊賬一起算。
(2)抽象類不能用final進行修飾。
(3)抽象類不能被實例化,也就是說你用的時候不能通過new關(guān)鍵字創(chuàng)建。
(4)抽象類中可以包含抽象方法和非抽象方法,抽象方法沒有方法體,也就是沒有具體實現(xiàn),
只是定義了有什么功能,但是非抽象方法含有方法體。
eg:
抽象父類Person:
package com.lanhuigu.java;
/** 
 * 抽象類:不能用final修飾, 
 * 可以包含抽象方法和非抽象方法, 
 * 抽象方法沒有方法體,只是定義功能,沒有實現(xiàn); 
 * 非抽象方法為正常的方法。 
 */
public abstract class Person {
	/* 
   * abstract methods 
   */
	public abstract String eat();
	public abstract String sleep();
	/* 
   * non-abstract methods 
   */
	public String sport() {
		return "生命在于運動";
	}
}
非抽象子類Teacher:
package com.lanhuigu.java;
/** 
 * 繼承于抽象類person,必須實現(xiàn)父類中的所有抽象方法 
 */
public class Teacher extends Person {
	@Override 
	  public String eat() {
		// TODO Auto-generated method stub 
		return "老師吃飯";
	}
	@Override 
	  public String sleep() {
		// TODO Auto-generated method stub 
		return "老師睡覺";
	}
}
非抽象子類Student:
package com.lanhuigu.java;
/** 
 * 繼承于抽象類person,必須實現(xiàn)父類中的所有抽象方法 
 */
public class Student extends Person {
	@Override 
	  public String eat() {
		// TODO Auto-generated method stub 
		return "學生吃飯";
	}
	@Override 
	  public String sleep() {
		// TODO Auto-generated method stub 
		return "學生睡覺";
	}
}
抽象子類OthersPerson:
package com.lanhuigu.java; 
/** 
 * 抽象類繼承自抽象類,可以不用實現(xiàn)其父類的抽象方法 
 */ 
public abstract class OthersPerson extends Person { 
  public abstract String call(); 
} 
非抽象子類ExtendsOthersPerson繼承于抽象子類OthersPerson:
package com.lanhuigu.java;
/** 
 * 必須實現(xiàn)抽象父類OthersPerson,以及OthersPerson父類Person中 
 * 的所有抽象方法,新帳舊賬一起算。 
 */
public class ExtendsOthersPerson extends OthersPerson {
	@Override 
	  public String sleep() {
		// TODO Auto-generated method stub 
		return "睡覺";
	}
	@Override 
	  public String eat() {
		// TODO Auto-generated method stub 
		return "吃飯";
	}
	@Override 
	  public String call() {
		// TODO Auto-generated method stub 
		return "打電話";
	}
}
測試代碼:
package com.lanhuigu.java;
public class TestAbstract {
	public static void main(String[] args) {
		Teacher teacher = new Teacher();
		Student student = new Student();
		//OthersPerson othersPerson = new OthersPerson();//報錯,抽象類不能被實例化 
		System.out.println(teacher.eat());
		System.out.println(teacher.sleep());
		System.out.println(teacher.sport());
		// 繼承父類非抽象方法 
		System.out.println("==============");
		System.out.println(student.eat());
		System.out.println(student.sleep());
		System.out.println(student.sport());
		// 繼承父類非抽象方法
	}
}
控制臺輸出:
老師吃飯
老師睡覺
生命在于運動
==============
學生吃飯
學生睡覺
生命在于運動
總結(jié)
以上就是本文關(guān)于java編程abstract類和方法詳解的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
java中staticclass靜態(tài)類詳解
Java壓縮文件工具類ZipUtil使用方法代碼示例
Java編程關(guān)于子類重寫父類方法問題的理解
如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
上一篇:java編程之xpath介紹
欄 目:Java編程
下一篇:java編程實現(xiàn)求質(zhì)數(shù)與因式分解代碼分享
本文標題:java編程abstract類和方法詳解
本文地址:http://www.jygsgssxh.com/a1/Javabiancheng/8371.html
您可能感興趣的文章
- 01-10Java咖啡館(1)——嘆咖啡
 - 01-10Java Socket編程(三) 服務(wù)器Sockets
 - 01-10Java進階:Struts多模塊的技巧
 - 01-10Java Socket編程(一) Socket傳輸模式
 - 01-10Java Socket編程(二) Java面向連接的類
 - 01-10Java運行時多態(tài)性的實現(xiàn)
 - 01-10Java經(jīng)驗點滴:處理沒有被捕獲的異常
 - 01-10Java Socket編程(四) 重復(fù)和并發(fā)服務(wù)器
 - 01-10Java中的浮點數(shù)分析
 - 01-10面向?qū)ο缶幊?Java中的抽象數(shù)據(jù)類型
 


閱讀排行
本欄相關(guān)
- 01-10Java咖啡館(1)——嘆咖啡
 - 01-10JVM的垃圾回收機制詳解和調(diào)優(yōu)
 - 01-10Java Socket編程(三) 服務(wù)器Sockets
 - 01-10Java進階:Struts多模塊的技巧
 - 01-10J2SE 1.5版本的新特性一覽
 - 01-10Java Socket編程(一) Socket傳輸模式
 - 01-10Java運行時多態(tài)性的實現(xiàn)
 - 01-10Java Socket編程(二) Java面向連接的類
 - 01-10Java Socket編程(四) 重復(fù)和并發(fā)服務(wù)
 - 01-10Java經(jīng)驗點滴:處理沒有被捕獲的異常
 
隨機閱讀
- 01-10使用C語言求解撲克牌的順子及n個骰子
 - 08-05織夢dedecms什么時候用欄目交叉功能?
 - 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
 - 01-11ajax實現(xiàn)頁面的局部加載
 - 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
 - 01-10delphi制作wav文件的方法
 - 04-02jquery與jsp,用jquery
 - 08-05DEDE織夢data目錄下的sessions文件夾有什
 - 01-10C#中split用法實例總結(jié)
 - 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
 


