继承
- extends多个类中存在相同属性和行为时,将这些内容抽象到单独的一个类中,无需再定义这些属性和行为,只需要继承即可
- 父类:又叫基类,超类
- 子类:派生类
- 子类可以访问父类中的非私有的属性和行为
- 子类不能够继承父类的构造方法
- 父类可以被多个子类继承,但是子类只有一个直接父类
- 继承可以存在多级
方法重写
重载:在同一类中,方法名一样,参数列表不同
重写:在继承中出现的,是子类与父类具有相同的方法,子类的方法叫做重写;方法名、返回值、参数列表相同(不同的是函数体)
super关键字
- 在子类的构造方法中直接通过super关键字调用父类的构造方法,如果父类有多个构造函数,根据参数列表来区分。必须放在第一行
- 如果父类与子类中有同名成员变量,此时要访问父类成员变量可以通过super
- 如果子类重写了父类的方法,可以通过super调用父类的方法
this——当前对象(子类的方法、属性)
super——父类对象(父类的方法、属性)
super.super破坏了java的封装性
final关键字
final关键字是一个修饰符,用来修饰类、方法和变量
- final修饰一个类,则不能够被继承
- final修饰方法,则方法不能够被重写
- final修饰变量,如果这个值一旦被指定,则无法改变
static与final关键字
static:静态变量,只保留一个副本
final:用来表示变量不可变
被static修饰以后只有一个值
被final修饰可以有多个值,因为每次都赋予一个值,只是保证赋予的这个值不变
package com.FinalStatic.util;
/*
* @author Administrator
* @version 1.0
*/
public class FinalStaticDemo {
//成员变量
public final double num1 = Math.random();
public static double num2 = Math.random();
public static final double num3 = Math.random();
}
package com.FinalStatic.util;
/*
* @author Administrator
* @version 1.0
*/
public class FinalStaticTest {
//主函数
public static void main(String[] args) {
for(int i = 0; i <5; i++) {
FinalStaticDemo fs = new FinalStaticDemo();
System.out.println("final = " + fs.num1 + ";static = " + fs.num2 + ";static final = " + fs.num3);
}
}
}