1. static关键字
static
可以用来修饰的成员变量和成员方法,被static
修饰的成员是属于类的是放在静态区中,没有static
修饰的成员变量和方法则是属于对象的。
1.1 静态变量
有static
修饰的成员变量是属于类的,这种成员变量称为类变量或者静态成员变量。因为类只有一个,所以静态成员变量在内存区域中也只存在一份,所有这个类的对象都可以共享静态变量。
定义格式
修饰符 static 数据类型 变量名 = 初始值;
访问
类名.静态成员变量名
1.2 实例变量
无static
修饰的成员变量是属于对象的,这种成员变量称为实例变量。
注意:实例变量属于对象,必须创建类的对象才可以访问。
访问
对象名.实例成员变量名
1.3 静态方法
有static
修饰的成员方法是属于类的,这种成员方法称为类方法或者静态方法。因为类只有一个,所以静态方法在内存区域也只存在一份,所有这个类的对象都可以共享静态方法。
访问
类名.静态方法名()
1.4 实例方法
无static
修饰的成员方法是属于对象的,这种成员方法称为实例方法。
注意:实例方法属于对象,必须创建类的对象才可以访问。
访问
对象名.实例方法名()
2. 继承
假如多个类种存在相同属性和行为时,我们可以将这些内容抽取到单独的一个类中,那么多个类就无需再定义这些相同的属性和行为,只要继承抽取出来的那个类即可。其中,多个类称为子类,被继承的类称为父类、超类或者基类。
2.1 继承的含义
继承就是子类继承父类的属性和行为,使得子类对象可以直接具有与父类相同的属性和行为。子类可以直接访问父类中非私有的属性和行为。
继承的好处
- 提高代码的复用性,减少代码冗余
- 使类与类之间产生了关系
2.2 继承的使用
通过extends
关键字,可以声明一个子类继承父类
格式
class 父类 {
...
}
class 子类 extends 父类 {
...
}
注意:Java是单继承的,一个类只能继承一个直接父类。
子类不能继承的内容
- 子类不能继承父类的构造方法
注意:子类可以继承父类的私有成员(成员变量、成员方法),只是子类无法直接访问私有成员,可以通过get/set方法访问父类中的私有成员变量。
2.3 使用super访问父类成员
子父类中出现了同名的成员时,在子类中可以使用super
关键字来访问父类中非私有的成员。
注意:
super
代表的是父类对象的引用,this
代表的是当前对象的引用。
格式
成员变量: super.成员变量名
成员方法: super.成员方法名()
2.4 方法重写
子类中出现与父类一样的方法(返回值类型、方法名和参数列表相同)时,会出现覆盖的效果,称为重写。
注意:
- 建议所有重写都加上@Override注解,一方面可以提高代码的可读性,一方面可以防止重写出错。
- 方法重写是发生在子父类之间的关系、
- 必须要保证权限大于等于父类权限
- 返回值类型、方法名和参数列表都要一致
2.5 继承后的构造方法
继承之后,子类的构造方法中默认有一个super()
,表示调用父类的构造方法,父类成员变量初始化后才可以给子类使用。
2.6 super(...)和this(...)
super
和this
访问成员
this.成员变量名
super.成员变量名
this.成员方法名()
super.成员方法名()
super
和this
调用构造方法
super(...); // 调用父类的构造方法
this(...); // 调用本类的其他构造方法
子类构造方法的第一行都隐含了一个
super()
,所以子类构造方法中可以省略super()
。
2.7 继承的特点
- Java只支持单继承,不支持多继承
- 一个类可以有多个子类
- 可以多层继承
标签:Java,变量,继承,子类,成员,笔记,学习,父类,super From: https://www.cnblogs.com/kuaicode/p/17001638.html注意:Java中所有的类都默认继承Object类。