一.抽象类和抽象方法 (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"); } }
三. 构造方法和类方法