Java 接口和类一些总结

如果一个类要实现一个接口,则必须实现该接口里面的所有的方法


Java 中的返回的类型是接口,但是接口是不能实例化,但是接口可以声明一个引用,指向其实现类,也就是说,在实际中返回值都是这个接口的实现类的对象。这点就是面向对象的一大特点。

记住一句话:属性看左边,方法看右边,比如:

interface a = new class1();

那么如果在接口和 class1里面都有一个同样的属性声明,比如在接口里面声明:int num=5;    在类里面同样声明了: int num=6; 

那么:a.num=5,因为默认情况下,接口里面的属性都是用 public static final 修饰的,所以不能被其实现类去修改,当调用方法的时候,是看右边,

如:a.method(),那么调用的就是接口的实例化类里面的方法

Java 接口的引用(这里就是那个 a)其实就是借助于   创建一个实现该接口    的类     的对象(简单点就是借助一个对象),来对接口自身内部的属性和方法进行操作,当然这里的对方法的操作调用的是其实现类里面的具体实现的方法。用接口声明一个引用来指向其具体的实现类的对象的好处就是该引用只能调用实现类里面所包含的接口的方法,而不能调用除了接口里面的方法意外的只属于实现类的方法。我们都知道一个接口可以被不同的实现类所实现,当然这些不同的实现类在实现接口的方法的时候,所定义的具体的功能是不同的,所以一个接口的引用可以根据具体的要求来指向具体的实现类。但是它并不等同于其实现类   的对象,因为这个引用只能操作接口自身的属性和方法,而不能操作其实现类里面的除了接口方法以外的方法,

比如:

public interface A{  
      public void hello();
}  
public class B implements A{  
      public void hello{  
            System.out.println("hello!");  
      }  
      public void test{  
             System.out.println("hello!");  
      }   
     public static void main(String[] args){  
                 A a=new B();  
                    a.hello();  
                    a.test();  
      }  



其中 a.hello(): 可以打印出   hello ,但是  a.test();   则不能打印出   hello,那么如果想用  a  来调用  B 类里面的  test  方法,就需要做一个强制类型转换   (B(a)).test();  转换为 B 类型的对象就可以对齐调用

用接口声明一个引用的好处是别人不知道你是如何实现该接口里面的方法的,也就是不知道接口的实现类 B 的源码,只能用接口的引用去调用 B 的方法实现相应的功能,就像汽车的发动机,你知道怎么用这个发动机,但是你不知道该发动机是如何用什么技术实现的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Micrle_007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值