版权声明:转载原创文章请以超链接形式请注明原文章出处,尊重作者,尊重原创!
恰饭广告
接口:接口是抽象方法的集合。接口通常以interface来声明。
接口注意事项:
1、严格来说,接口是用来实现(implements),而不是继承(extends)。
2、接口对象不能直接使用关键字new进行实例化,可以利用子类对象的向上转型进行实例化。
3、接口必须要有子类,子类可以实现(implements)多个接口,而且一个接口也能继承另一个接口。
4、接口的成员只能是常量,不能是变量。如String name;(变量)。String name=bing;(常量)。
5、接口的成员和方法一般都是对外开放的(public) ,【private 、protected 、abstract】不能去修饰接口的常量。【protected、private、static、final】不能去修饰接口的方法。
6、定义接口方法和常量的时候就算没有写上public,那么最终的访问权限也是public,而不是default。
7、为了节省打字时间,接口的方法默认都是public abstract修饰。
接口的示例代码:
public interface OneInterface { //接口1 public static final String oneName = "小明";//全局常量 public abstract void msgOne();//公共抽象方法,无return } interface TwoInterface{ //接口2 public static final String twoName = "小红";//全局常量 public abstract String msgTwo();//公共抽象方法,有return }
要去实现接口的子类:
public class Test implements OneInterface,TwoInterface{ //多接口实现 @Override public void msgOne() { //子类去实现接口1的方法 System.out.println(oneName); } @Override public String msgTwo() { //子类去实现接口2的方法 System.out.println(twoName); return twoName; } public static void main(String[] args){ Test t=new Test(); //子类实例对象 t.msgOne(); //对象调用方法 t.msgTwo(); } }
接口的作用:(不是三言两语就能说清楚的)
1、解决了java的单一继承(extends)。
2、简单、规范性,维护、拓展性,安全、严密性;(详解请访问https://www.cnblogs.com/zhaoyanjun/archive/2016/03/25/5320034.html)
抽象类:abstract修饰的类。
抽象类注意事项:
1、abstract 可以修饰类或方法,但不可以修饰成员和构造方法。
2、抽象类对象不能通过new关键字实例化。
3、抽象方法不在声明它的类中实现,但必须在某个子类中重写。
4、abstract 关键字不能应用于 static、private 、 final 修饰的方法,因为这些方法不能被重写。
5、抽象类不一定要有抽象方法,但有抽象方法的类必定是抽象类。
抽象类代码例子:
public abstract class Abstract { String oneName="小明"; String twoName="小红"; public abstract void msgOne(); //抽象类自己的不能实现的方法 public abstract String msgTwo(); static void test(){ //抽象类自己的可以实现的方法 System.out.println("小明\n小红"); } public static void main(String[] args){ test(); //抽象类不能创建对象,所以用static修饰方法,方便调用 } }
继承抽象类的子类:
public class Test extends Abstract{ //继承抽象类 @Override public void msgOne() { //重写了抽象类的方法 System.out.println(oneName); } @Override public String msgTwo() { //重写了抽象类的方法 System.out.println(twoName); return twoName; } public static void main(String[] args){ Test t=new Test(); //子类实例对象 t.msgOne(); //对象调用方法 t.msgTwo(); } }
运行结果:(相同)
小明 小红
接口与抽象类的区别:
1、接口多实现,抽象单继承。
2、抽象类中有自己可以实现的方法体,但接口不行。
3、抽象类可以有静态代码块和静态方法,但接口不行。
4、图:
关于接口和抽象类在声明情况下的使用:(https://www.cnblogs.com/dolphin0520/p/3811437.html)
最后:仔细认真理解!
原文链接:https://www.idaobin.com/archives/404.html
让我恰个饭吧.ヘ( ̄ω ̄ヘ)
恰饭广告