abstract抽象类和interface接口
abstract抽象类
1.可以修饰类和方法,修饰的类叫抽象类,修饰的方法叫抽象方法
2.抽象类中可以没有抽象方法,但抽象方法一定存在抽象类中
3.子类继承了抽象类,必须要实现抽象类的所有抽象方法,否则该子类也需要声明为抽象类
4.抽象类不能被实例化(也就是不能new),抽象类是用来让子类继承的
5.抽象方法只有方法的声明,没有方法体,是用来让子类去实现的
6.子类实现了父类的抽象方法后,可以正常的的进行实例化,并通过实例化对象调用方法
例
public abstract class chouxiang { public abstract void doSome(); } class A extends chouxiang{ @Override public void doSome() { System.out.println("调用抽象方法"); } } class Test { public static void main(String[] args) { A a=new A(); a.doSome(); } }
interface接口
1.接口是由常量和抽象方法组成的特殊类,是对抽象类的进一步抽象
2.接口中的属性默认使用“public static final”来修饰,方法默认使用“public abstract”来修饰
3.接口不能实例化,没有构造方法
4.当一个类实现接口时,如这个类是抽象类,则可实现接口中的部分方法,否则需要实现就口中所有的方法
5.一个类通过implements实现接口时,可以实现多个接口,接口之间用逗号隔开
interface Run{ void run(); } interface Go{ void go(); } public class A implements Run,Go { public void run() {} public void go() {} }
6.一个接口可以通过extends实现多个接口,接口之间用逗号隔开
interface Run{ void run(); } interface Go{ void go(); } interface B extends Run,Go{}
7.一个类在继承另一个类的同时还可以实现多个接口,extends必须位于implements前面
interface Run{ void run(); } interface Go{ void go(); } class Swim{ public void swim(){ System.out.println("swim"); } } public class A extends Swim implements Run,Go { public void swim() { } public void run() { } public void go() { } }
例
interface Run{ void run(); } interface Go{ void go(); } public class Anmial implements Run,Go{ public void run() { System.out.println("run"); } public void go() { System.out.println("go"); } } class Test { public static void main(String[] args) { Anmial A1=new Anmial(); A1.run(); A1.go(); } }
浙公网安备 33010602011771号