30、java学习之查漏补缺

在刚开始学习的时候,感觉似乎明白了,而自己动手写代码的时候,怎么老是调不通,这可能就是有些细节没有记住,这一章就专门讲解java中的一些细节问题:

 

1、访问权限:

public 、protected、default  、private 

public和private很好区别,往往是将default和protected混淆;

类一般声明为public这样方便在其他包或类中调用,属性一般声明为private;在方法的修饰上却有很大的不同,往往用public和protected修饰,很少用default和private;public声明的方法也很好理解,而为什么要用protected修饰呢?

比如有一个A.fun1()方法,可能涉及程序运行稳定;如果不对其限制访问,在不该执行的地方执行了new A().fun1()这个方法,就会造成很多麻烦;所以要对其限制访问;但是,在某处确实需要执行这个方法,如果设置成了default或private,将在外包永远无法访问,这就需要protected这个访问权限来处理了;

具体使用:

package org.skx
public A{
   protected say(){
          System.out.println("ok");
}}
 
package org.skx2
public B extends A{
    protected say(){   //或者进行权限扩展为public
       super.say();
}}

注意: 1、访问权限只能扩展不能缩小;2、要调用父类的protected方法或属性,只能覆写这个方法,在方法里面使用super关键字引用,直接使用new B().say();是无法访问的,属性同理;3、super关键字只能适用覆写public和protected修饰的方法(属性);

2、实现接口:

扫描二维码关注公众号,回复: 592376 查看本文章
public  interface  A{
    public void sayHI();
}
public interface B{
    public void sayHello();
}
public class AB impliments A,B{
    public void sayHI(){
          System.out.println("hi');
     }
     public void sayHello(){
           System.out.println("hello");
      }
}

  如果现在是 A ab = new AB();如何调用sayHello()方法呢?(B)ab.sayHello()直接转义就可以。

猜你喜欢

转载自nickfover.iteye.com/blog/2123242