閱讀236 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Java麵向對象高級--抽象類的基本概念------abstract

抽象類的概念:

包含一個抽象方法的類就稱為抽象類。

抽象方法:隻聲明但未實現的方法稱為抽象方法,使用abstract關鍵字聲明。

抽象類的定義及使用規則:



abstract class A{	// 是定義了一個抽象類
	public static final String FLAG = "CHINA" ;	// 全局常量
	private String name = "XIAOWU" ;	// 定義一個普通的屬性
	public void setName(String name){
		this.name = name ;
	}
	public String getName(){
		return this.name ;
	}
	public abstract void print() ;		// 定義抽象方法
};
抽象類的子類覆寫抽象類中的抽象方法。
abstract class A{	// 是定義了一個抽象類
	public static final String FLAG = "CHINA" ;	// 全局常量
	private String name = "XIAOWU" ;	// 定義一個普通的屬性
	public void setName(String name){
		this.name = name ;
	}
	public String getName(){
		return this.name ;
	}
	public abstract void print() ;		// 定義抽象方法
};
class B extends A{	// 繼承抽象類,因為B是普通類,所以必須覆寫全部抽象方法
	public void print(){
		System.out.println("FLAG = " + FLAG) ;
		System.out.println("姓名 = " + super.getName()) ;
	}
};
public class AbstractDemo02{
	public static void main(String args[]){
		B b = new B() ;
		b.print() ;
	}
};

抽象類的思考:



abstract class A{	// 是定義了一個抽象類
	public A(){
		System.out.println("A、抽象類中的構造方法。") ;
	}
};
class B extends A{	// 繼承抽象類,因為B是普通類,所以必須覆寫全部抽象方法
	public B(){
		super() ;
		System.out.println("B、子類中的構造方法。") ;
	}
};
public class AbstractDemo03{
	public static void main(String args[]){
		B b = new B() ;
	}
};

abstract class Person{
	private String name ;		// 定義name屬性
	private int age ;			// 定義age屬性
	public Person(String name,int age){
		this.name = name ;
		this.age = age ;
	}
	public void setName(String name){
		this.name = name ;
	}
	public void setAge(int age){
		this.age = age ;
	}
	public String getName(){
		return this.name ;
	}
	public int getAge(){
		return this.age ;
	}
	public abstract String getInfo() ;	// 抽象方法
};
class Student extends Person{
	private String school ;
	public Student(String name,int age,String school){
		super(name,age) ;	// 指定要調用抽象類中有兩個參數的構造方法
		this.school = school ;
	}
	public void setSchool(String school){
		this.school = school ;
	}
	public String getSchool(){
		return this.school ;
	}
	public String getInfo(){
		return	"姓名:" + super.getName()  + 
				";年齡:" + super.getAge() + 
				";學校:" + this.getSchool() ;
	}
};
public class AbstractDemo04{
	public static void main(String args[]){
		Student stu = new Student("張三",30,"清華大學") ;
		System.out.println(stu.getInfo()) ;
	}
};


最後更新:2017-04-03 15:21:51

  上一篇:go 網絡子係統1_socket文件係統相關的初始化
  下一篇:go 關於SSDT