java 基礎知識二(抽象類‘、接口)

  • 1.抽象類---abstract
       當父類的方法不確定時候,可以abstract關鍵修飾這種方法,可以修飾這種方法,同樣修飾這樣類:
1)當一個類繼承父類是抽象類,子類必須實現父類其中所有的抽象方法
2)   抽象方法必須在抽象類,抽象方法在父類不能實現 只能是這樣 abstract public void cry();沒有主體
3) 抽象類 不能實例化; anmial an=new anmial() 出現問題
4) 抽象類沒有abstract方法,不能有主體  
主體: abstract void cry(){   }

public class demo_2 {
	anmial an =new anmial();//會報錯 抽象方法不能實例會
	Cat cat=new Cat();
}

abstract class anmial{
	String name;
	int age;
	
	//動物會叫,不知道會怎樣去叫 ---必須要抽象
	//抽象方法在抽象類中  抽象類同樣繼承
	abstract public void cry();
}
//當一個類繼承父類是抽象類,子類必須實現其中所有的抽象方法
class Cat extends anmial{
	
	public void cry()
	{
		//實現;不會報錯
	}
	
}
  • 2. 接口----實現多繼承和多態
class 類名 implement interface
{
   
}
     1). 實現接口的話,必須實現接口中所有的方法
     2). 接口不能實例化,接口中所有方法不能用主體
     3).調用接口 接口過程有變量{但是變量不能用private 和 protected 修飾,變量要初始化}---接口中變量都是static類型,並且接口中變量常變量必須要初始化---接口中變量本質上靜態的且final類型。
     4).一個接口不能繼承其他類  可以繼承其他接口;但是實現接口時候除了實現本接口中方法,還要實現繼承的接口中方法

/**
 * 
 */
package ExtendsDemo;

/**
 * @author 
 *
 */
public interface USB extends kkk {
	int a=0;//static 類型且 final
	public void start();
	public void stop();
}

interface kkk{
	public void fry();
}
//一個類實現多個接口
class Camera implements USB,kkk
{
//當一個類實現某個接口,必須該類實現接口所有方法
	@Override
	public void start() {
		// TODO Auto-generated method stub
		System.out.println("我是相機 開始工作");
	}

	@Override
	public void stop() {
		// TODO Auto-generated method stub
		System.out.println("我是相機 停止工作");
	}

	@Override
	public void fry() {
		// TODO Auto-generated method stub
		
	}
	
}

class Phone implements USB
{

	@Override
	public void start() {
		// TODO Auto-generated method stub
		System.out.println("我是phone 開始工作");
	}

	@Override
	public void stop() {
		// TODO Auto-generated method stub
		System.out.println("我是phone 停止工作");
	}

	@Override
	public void fry() {
		// TODO Auto-generated method stub
		
	}
	
}

class Computer{
	
	public void USeUsb( USB usb)
	{//多態,電腦自己識別調用不同實例
		usb.start();
		usb.stop();
	}
}

兩者區別:
      1. 抽象類可以爲成員方法提供實現的細節,但是接口 只能有public abstract方法 不能有private或者protected修飾成員方法 接口方法都是public
     2.抽象類成員變量各種類型,但是接口中變量只能是public static靜態變量
     3.接口中不能用靜態代碼塊或者靜態的方法
    4.接口不能繼承其他類,繼承其他的接口,一個類只能繼承一個抽象類但是實現多個接口(接口只能繼承接口,類只能繼承一個抽象類)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章