美文网首页
Java常用关键词

Java常用关键词

作者: 月沉眠love | 来源:发表于2019-08-24 09:38 被阅读0次

    关键词:

    1.final

    继承可以允许子类覆写父类的方法。如果一个父类不允许子类对它的某个方法进行覆写,可以把该方法标记为final。用final修饰的方法不能被Override:

    • final修饰的方法可以阻止被覆写;
    • final修饰的class可以阻止被继承;
    • final修饰的field必须在创建对象时初始化,随后不可修改。

    2.Override

    Override和Overload不同的是,如果方法签名如果不同,就是Overload,Overload方法是一个新方法;如果方法签名相同,并且返回值也相同,就是Override。

    3.extends

    关键字来实现继承

    4.protected

    用protected修饰的字段可以被子类访问:

    (子类无法访问父类的private字段或者private方法)

    5.Overload

    这种方法名相同,但各自的参数不同,称为方法重载(Overload)

    6.private

    外部代码不能直接读取private字段,但可以通过getName()和getAge()间接获取private字段的值

    private方法不允许外部调用

    private方法的理由是内部方法是可以调用private方法的

    7.abstract

    法声明为abstract,表示它是一个抽象方法

    如果父类的方法本身不需要实现任何功能,仅仅是为了定义方法签名,目的是让子类去覆写它,那么,可以把父类的方法声明为抽象方法。

    因为无法执行抽象方法,因此这个类也必须申明为抽象类。

    使用abstract修饰的类就是抽象类。我们无法实例化一个抽象类。

    从抽象类继承的子类必须实现抽象方法。

    如果不实现抽象方法,则该子类仍是一个抽象类。

    8.interface

    
    abstract class Person {
    
     public abstract void run();
    
     public abstract String getName();
    
    }
    

    如果一个抽象类没有字段,所有方法全部都是抽象方法,

    就可以把该抽象类改写为接口:interface。

    
    interface Person {
    
     void run();
    
     String getName();
    
    }
    

    所谓interface,就是比抽象类还要抽象的纯抽象接口,因为它连字段都不能有。因为接口定义的所有方法默认都是public abstract的,所以这两个修饰符不需要写出来(写不写效果都一样)。

    9.implements

    当一个具体的class去实现一个interface时,需要使用implements关键字

    10.default

    实现类可以不必覆写default方法。default方法的目的是,当我们需要给接口新增一个方法时,会涉及到修改全部子类。如果新增的是default方法,那么子类就不必全部修改,只需要在需要覆写的地方去覆写新增方法。

    default方法和抽象类的普通方法是有所不同的。因为interface没有字段,default方法无法访问字段,而抽象类的普通方法可以访问实例字段。

    11.static

    静态变量:

    对于静态字段,无论修改哪个实例的静态字段,效果都是一样的:所有实例的静态字段都被修改了,原因是静态字段并不属于实例:

    屏幕快照 2019-08-24 上午9.37.40.png

    推荐用类名来访问静态字段。可以把静态字段理解为描述class本身的字段(非实例字段

    静态方法:

    调用实例方法必须通过一个实例变量,而调用静态方法则不需要实例变量,通过类名就可以调用。静态方法类似其它编程语言的函数。

    接口的静态字段

    因为interface是一个纯抽象类,所以它不能定义实例字段。但是,interface是可以有静态字段的,并且静态字段必须为final类型:

    public interface Person {

    public static final int MALE = 1;

    public static final int FEMALE = 2;

    }

    实际上,因为interface的字段只能是public static final类型,所以我们可以把这些修饰符都去掉,上述代码可以简写为:

    public interface Person {

    // 编译器会自动加上public statc final:

    int MALE = 1;

    int FEMALE = 2;

    }

    编译器会自动把该字段变为public static final类型。

    相关文章

      网友评论

          本文标题:Java常用关键词

          本文链接:https://www.haomeiwen.com/subject/wvsfectx.html