1、super关键字 【鸡肋】
只能用在继承,并在子类中使用。
其主要意思就是:父类的
在执行子类构造方法的时候会先执行父类的构造方法
this:
代表当前类对象
可以第哦啊用属性和方法
可以调用构造方法
super:
代表当前子类对应的父类
可以调用父亲的成员变量和成员方法
可以调用父类的构造方法
**注意事项:**当super调用属性的时候,就是调用父类中的拿个属性,
真实开发的时候,super父类的方法,只是证明在调用父类的方法
**注意:**在子类中无论你写了有参构造和无参构造,都要去执行父类的无参构造
所以父类最好写一个无参方法,空方法也行
2、抽象类
**关键字:**abstract
abstract只能修饰 类 和 方法
语法格式:
abstract class 类名 {
普通的方法;
public void eat () {
}
抽象的方法:
public abstract void sleep ();
}
注意事项:
1、抽象类的格式:
如果一个类中用abstract修饰,那它就是抽象类,抽象类中,可以有,普通成员方法 & 抽象方法,抽象方法没有方法体,是不完整的方法
2、抽象类的实现(重写):
抽象类,不能被实例化(不能被new),可以写一个普通的类继承抽象类,在子类中去实现(重写)抽象类中的所有抽象方法,非抽象方法可以不重写
3、抽象类的继承
抽象类,可以继承抽象类和非抽象类
3、final
final的中文意思:最终的、最后的
用法:
1、final可以修饰 成员变量
前提是使用final修饰时,一定要赋值(初始化)。且不可修改
2、final可以修饰 局部变量
局部变量中使用final修饰可以先不赋值,但使用之前必须赋值
3、final可以修饰 成员方法
final修饰的成员方法不能被重写,其中就牵涉到继承
4、final可以修饰 类
final修饰的类 不能被继承
5、final可以修饰 对象的引用
final修饰对象引用 一旦被赋值,就无法改变
4、接口
**接口的作用就是:**扩展功能
语法格式:
interface 接口名字 {
成员变量
成员方法
}
实现接口使用该关键字 implements
语法格式:
class 类名 implements 接口名 {
重写
}
接口的注意事项:
1、接口的格式:
使用关键字interface 创建接口,接口中的属性会被static 和 final 修饰,被称为常量。接口中全是抽象方法
2、jdk1.8以后,出现了(default)默认方法,默认方法带有方法体 【重点】
3、接口的继承
接口没有构造方法,不能被实例化,可以使用一个普通类实现这个接口,关键字implements,在实现类中,必须实现接口中的所有抽象方法
4、多个接口
一个普通的类可以同时实现多个接口。一个接口可以继承另外一个接口,注意,是继承而不是实现
class 类名 implements 接口1, 接口2, 接口3 ...{
}