Java基础知识回顾第四篇 - &和&&|方法重写重载|成员变量静态变量|抽象类接口多态

1、&和&&的区别

作为逻辑运算符:&(不管左边是什么,右边都参与运算),&&(如果左边为false,右边则不参与运算,短路)

另外&可作为位运算符。

 

2、方法重写(override)和方法重载(overloaded)

方法重载:发生在同一个类当中,方法名相同,参数个数、参数类型、参数顺序不同,和返回值类型无关

public class OverloadTest {

public void createUser(String name){

}

public void createUser(String name, int age){

}

//编译报错

//public int createUser(String name, int age){

//return 0;

//}

public void createUser(int age,String name){

}

public void CreateUser(String name, char sex){

}

}

方法重写:发生在有父子类关系的类中,子类重写了父类的方法(相同的定义);

 

3、成员变量和静态变量的区别

成员变量所属于对象,所以又叫实例变量;静态变量所属于类,所以又叫类变量

成员变量存在于堆内存中;静态变量存在于方法区中;

成员变量随着对象的创建而存在,随着对象的回收而消失;静态变量随着类的加载而存在,随着类的消失而消失;

成员变量只能被对象调用;静态变量能被对象调用,也能被类调用;

成员变量是对象的特有数据;静态变量是对象的共享数据;

 

4、抽象类和接口

何为抽象类?类用abstract修饰,不能创建对象。抽象类中不一定有抽象方法,但是含有抽象方法的类一定是抽象类。

何为接口?一些方法特征的集合,抽象类的特例,使用interface关键字。

抽象类和接口的区别:

a、抽象类只能被继承,而且只能是单继承;接口可以被实现,而且是多实现;

b、抽象类中可以定义非抽象方法,子类可以通过继承直接使用;接口中都是抽象方法,需要子类去实现;

c、抽象类使用的是is a关系,接口使用的是like a关系;

d、抽象类中的成员修饰符可以自己定义,接口中的成员修饰符是固定的,都是public;

 

5、多态

多态存在的三个必要条件:要有继承;要有重写;父类引用指向子类对象

多态的实现方式:接口实现,继承父类进行方法重写,同一个类中进行方法重载。

方法调用的优先级问题(由高到低):this.show(O)、super.show(O)、this.show((super)O)、super.show((super)O)

猜你喜欢

转载自williamwhj.iteye.com/blog/2311723
今日推荐