在这里插入代码片
# JAVASE复习
不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法的调用。二static方法调用时不需要创建对象,就可以直接调用。也就是所,当一个static方法被调用时,可能还没有创建任何实例对象。如果从一个static方法中发出分static的调用,非静态方法应该关联到哪个对象上呢?所以一个static方法内部不能发出分静态方法的调用。
Static方法是静态方法,是属于类的方法
非静态方法是属于对象的方法,所以在static方法中想要调用非static方法,要先新创建一个对象,在由这个对象来调用非static方法
总结:可以调用,但是要跟随对象调用。
Break :结束选择|循环结构
Return:返回具体类型给方法调用者;或者提前结束方法体;
Continue:跳过当前循环,继续下一次循环
Override:(重写,覆盖)发生在子类与父类中
方法名,参数,返回值相同,
子类方法不能缩小父类方法的访问权限。
子类方法不能抛出不父类更多的异常(子类可以不抛出异常)
存在父类和子类之间
方法被定义为final则不能被重写
Oveload(重载) 发生在一个方法中
差参数类型,个数,顺序至少有一个不同才能构成重载
不构成重载的修饰位置有权限修饰符,返回值类型。
存在于父类子类,同类中。
Overloaded的方法是可以改变返回值的类型。
接口可以继承接口,抽象类不可以继承接口,但是可以实现接口。
抽象类可以继承实体类。抽象类可以实现implements接口。
抽象类是否可以继承是实体类?前提是实体类必须有明确构造函数。
抽象类可以继承实体类,就是因为抽象类的可以继承性和私有方法
抽象类中可以包含静态的main方法
抽象类中可以有构造方法,接口中不能有构造方法
抽象类中可以有普通成员变量,接口中没有普通成员变量
抽象类中可以包含非抽象的普通方法,接口中的所有方法都必须是抽象的,不能有非抽象的普通方法
抽象类中的抽象方法的访问类型可以是public,protected,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型
抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final 类型的,并且默认即为public static final 类型
一个类可以实现对个接口,但只能继承一个抽象类。
Abstract和static
不能同时使用
用static声明的方法表名这个方法在不在生成类的实例时可直接被调用,额abstract方法不能被调用,两者矛盾
Abstract 和 native
Native:用来声明本地方法;
Native可以和所有其他所有的java标识符连用,但是abstrac除外
因为native按时这些方法是有实体的,只不过这些实体是非java的,但是abstract却显然的指明这些方法无实现体。
Abstract 与 synchronized
Synchronized:用于防止多个线程同时调用一个对象的该方法,与static连用可防止多个线程同时调用一个类的该方法
Abstract与synchronized不能同时使用
从synchronized的功能也可以看出,用synchronized的前提是该方法可以直接被调用,显然不能和abstract连用
当JAVA程序违反了JAVA的语义规则是,JAVA虚拟机就会将发生的错误表示为一个异常,违反语义规则包括2种情况。一种情况就是JAVA类内置的语义检查,例如数组索引下标越界,会引发IndexOutOfBoundsException;