介面與抽象類的淺析
package test;
/**
* 介面的意義:
*1.多型的前提條件之一
*2.彌補了普通類,抽象類間的單繼承的缺陷,介面之間可以多繼承,某個普通類或抽象類可以多實現介面
*3.普通類實現介面時,必須重寫裡面的所有的方法
*/
interface a{
void k();
}
interface b{}
interface A extends a,b{
public void AA1();
public void AA2();
public void AA3();
}
/**
* 抽象類B對AA1方法做了空實現
*
* 抽象類的意義:
* 1.可以在介面和普通類之間做橋接,因為抽象類實現介面,可以實現部分方法
* 2.雖然只能被單繼承,但是類中可以擁有普通方法和抽象方法
* 3.對一系列的事務作抽象,讓子類必須實現,從而有預測宣告的作用,所以體現了面向物件的封裝性,抽象性
* 4.因為多型的前提條件之一是繼承,所以體現了面向物件的多型性
*
*/
abstract class B implements A {
@Override
public void AA1() {}
@Override
public abstract void AA2();
}
//test繼承B類時,只需重寫AA2(),AA3()
class test extends B{
@Override
public void AA2() {}
@Override
public void AA3() {}
@Override
public void k() {
// TODO Auto-generated method stub
}
}
//test1實現介面時,全部重寫
class test1 implements A {
@Override
public void AA1() {}
@Override
public void AA2() {}
@Override
public void AA3() {}
@Override
public void k() {
// TODO Auto-generated method stub
}
}