java中的抽象方法_Java中的抽象类和抽象方法
###Java中的抽象方法和抽象類:
abstract:關(guān)鍵字,可以用于修飾方法和類
抽象方法:不同類的方法是相似的,但是具體實(shí)現(xiàn)的內(nèi)容又不太一樣,沒有具體的方法體。
抽象類:有抽象方法的類必須是抽象類
類與抽象類的關(guān)系是繼承關(guān)系,但是需要重寫抽象類的所有抽象方法,非抽象方法可以不用重寫,
否則這個(gè)類就一定是抽象類,抽象類可以繼承抽象類,也可以不用重寫抽象方法。
package 抽象類;
public class Abstract {
public static void main(String[] args) {
cat cat=new cat();
cat.eat();
dog dog=new dog();
dog.eat();
}
}
abstract class Animal{
public abstract void eat();
}
class cat extends Animal{
@Override
public void eat() {
System.out.println("貓吃魚啊");
}
}
class dog extends Animal{
@Override
public void eat() {
System.out.println("狗吃肉啊");
}
}
抽象類的特點(diǎn):
抽象方法只能在抽象類里面,抽象類里面可以有其他非抽象方法
抽象方法和抽象類必須被abstract修飾
抽象類不能創(chuàng)建對(duì)象(不能實(shí)例化)
抽象類和類的關(guān)系也是繼承
一個(gè)類繼承了抽象類要么重寫所有的抽象方法,要么他自己是抽象類
抽象類的成員特點(diǎn):
抽象類的成員特點(diǎn):
成員變量:
可以有成員變量
可以有常量
成員方法:
必須能有抽象方法
也可以有非抽象方法
構(gòu)造方法:
可以有構(gòu)造方法,需要對(duì)抽象類的成員變量進(jìn)行初始化
幾個(gè)問題:
抽象關(guān)鍵字abstract不可以和哪些關(guān)鍵字共存?
private和final不可以與abstract共存,因?yàn)楸籪inal修飾的方法不可以被重寫,而且被final修飾的類不能被繼承;方法被private修飾為私有時(shí),不能被重寫。
抽象類中是否有構(gòu)造函數(shù)?
有,抽象類也有成員變量,也需要被初始化,而且抽象類需要被繼承,被繼承的類需要有構(gòu)造函數(shù)初始化成員變量。
抽象類可不可以沒有抽象方法?
可以。
讓一個(gè)類不可以創(chuàng)建對(duì)象,有什么方法?
1.用abstract修飾為抽象類。
2.將構(gòu)造方法私有。
總結(jié)
以上是生活随笔為你收集整理的java中的抽象方法_Java中的抽象类和抽象方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: webservice 实现与his系统对
- 下一篇: tensorflowgpu利用率为0_直