一.抽象類和抽象方法 (B 繼承 抽象類A)java
抽象類:有抽象方法的必定是抽象類ide
抽象方法:方法名前有abstract修飾,且方法沒有方法體,即{},不須要實現任何功能,只是聲明this
1.抽象類中的方法有兩種:spa
(1)抽象類中的普通方法,能夠沒必要實現code
(2)抽象方法,所屬的抽象類被繼承後,抽象方法必須被重寫,除非是被抽象類繼承,沒必要被對象
抽象類必須被繼承,且抽象類不能被實例化,即抽象類A ,不能定義 A a=new A() ;blog
package Interface; /** * Created by wyy on 2017/2/25. */ public class abstractTest { public static void main(String[] args) { Person s = new Students(); //引用Students的對象 Person t = new Teacher();//引用Teacher的對象 s.f(); t.f(); //我是一個學生 我是一個老師 } } abstract class Person { public abstract void f(); //聲明一個抽象類 } class Students extends Person { //類Students繼承抽象類 public void f() { System.out.println("我是一個學生"); } } class Teacher extends Person { //類Teacher繼承抽象類 public void f() { System.out.println("我是一個老師"); } }
二. 接口(B implements interface A)繼承
實現接口的類,必需要實現接口內定義的全部方法.接口
先定義一個接口類Likeget
package Interface; /** * Created by wyy on 2017/2/22. */ public interface Like{ public void a(); public void b(); }
接口類 Hate
package Interface; /** * Created by wyy on 2017/2/22. */ public interface Hate { public void c(); public void d(); }
實現這兩個接口,必須實現接口內的全部方法:
public class A implements Like,Hate { @Override public void a(){ System.out.println("this is a"); } @Override public void b() { System.out.println("this is b"); } @Override public void c() { System.out.println("this is c"); } @Override public void d() { System.out.println("this is d"); } }
三. 構造方法和類方法