黑马程序员认识接口中的继承与实现

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

当一个类中的方法全是抽象方法时,这时可以将该抽象类用另一种定义和表示,就是接口,用interface修饰。既然接口是一个类,方法全是抽象的,那属性呢?

interface Person1{
 public static final int NUM=0;//初始年龄为0
public abstract  void study(); //学习的内容不具体,在java中一行的结束符为}或;
}
class Programmer implements Person1{
 public void study(){
  System.out.print("study c++....");
 }
}
public class IterfaceDemo {
 public static void main(String[] args) {
  Programmer stu=new Programmer();
  stu.study();  
  System.out.print("x="+Person1.x);
 }
}

 由上可以看出接口中的属性值是全局常量,而且是静态,公有的。在接口中的修饰符,全局常量:public static final 抽象方法:public abstract

类与类之间是继承关系,类与接口之间是实现关系。接口不可以实例化,只能由实现的子类覆盖其所有的抽象方法后才可以实例化,否则这个类还是抽象类。

interface Demo{
 public static final int NUM=0;
 public abstract void show();
 public abstract void method();
}
class DemoImpl implements Demo{
 public void show(){
  System.out.print("show...");
 }
 public void method(){
  System.out.print("method...");
 }
}
public class IterfaceDemo {
 public static void main(String[] args) {
  DemoImpl d=new DemoImpl();
  d.show();
  d.method();
  System.out.print(d.NUM);//The static field Demo.NUM should be accessed in a static way
  System.out.print(DemoImpl.NUM);
  System.out.print(Demo.NUM);  
 }
}

那么接口是用来做什么的呢?有学习继承的时候,一个类只能继承一个类,不能多继承,有一定的局限性,由于接口的出现,一个类可以实现多个接口, 可以多实现,而接口与接口之间也可以q多继承,多继承在类进行了改良,用了多实现的方法来体现,但接口内容的出现,可以多继承,原理在于方法体是否存在

interface AA{
 public abstract void show();
}
interface BB{
 public abstract void method();
}
interface CC extends AA,BB{
 public abstract void function();
}
class WW implements CC{
 public void show(){
  System.out.print("show .....");
 }
 public void method(){
  System.out.print("method .....");
 }
 public void function(){
  System.out.print("function .....");
 }
}
public class IterfaceDemo {
 public static void main(String[] args) {
    WW w=new WW();
    w.show();
    w.method();
    w.function();
 }
}

由此可以看出,接口之可以多继承,继承是自己不需要做,拿父类的方法可以直接用,而实现则需要子类全覆盖所有的抽象方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值