Java中有關(guān)抽象類的基礎(chǔ)學(xué)習(xí)
1.抽象類: 不能手動(dòng)創(chuàng)建對(duì)象(JVM可以創(chuàng)建抽象類的對(duì)象),但是可以聲明抽象類型的引用。
public class TestAbstract1{ Animal a=null; |
2.抽象方法:有方法名的定義,沒(méi)有實(shí)現(xiàn),(只定義了能做什么,沒(méi)定義怎么做)
抽象方法的好處是允許方法的定義和實(shí)現(xiàn)分開。
abstract class Animal{ public abstract void eat(); } |
抽象類和抽象方法的關(guān)系:含有抽象方法的類一定是抽象類,抽象類里不一定含有抽象方法
抽象類存在的意義是用來(lái)被繼承的。一個(gè)類繼承了一個(gè)抽象類,必須實(shí)現(xiàn)抽象類里面所有的抽象方法,否則,此類也是抽象類。
abstract class Animal{ public void run(){} public abstract void sleep(); public abstract void eat(); } class Dog extends Animal{ public void sleep(){ System.out.println("Dog sleep."); } public void eat(){ System.out.println("Dog eat."); } } abstract class Cat extends Animal{ public void eat(){ System.out.println("Cat eat."); } } |
public class TestAbstract1{ public static void main(String[] args){ Animal a=null; a=new Dog(); a.sleep(); a.eat(); } } |
class E{} abstract class Animal extends E{ public Animal(){ super(); } } |
3.多種修飾符的連用問(wèn)題:
public protected default private static final abstract
可以連用:
public static
private static
public final
public static final
不可以連用:abstract final void eat();
private abstract void eat();
static abstract void eat();
abstract不能和final,private,static連用
【編輯推薦】