继承
public class 子类名 extends 父类名{}
this和super
要访问子类中方法内成员变量的值应用this.+值
要访问父类中的值应用super.+值
访问本类构造方法this(...)
访问本类成员方法this.成员方法(...)
super()访问父类的构造方法
super.成员方法(...)访问父类成员方法
子类中所有的构造方法都会访问父类中无参的构造方法
每一个子类构造方法的第一个默认语句都是:super()
如果写出来了super()那么默认的就会消失
若父类中没有无参构造方法,并且子类中使用了无参构造方法那么就会报错
解决方法:直接访问带参构造方法(此时默认的super()就会消失)
@Overeide用于判断子类方法声明是否与父类相同
子类继承不到父类中的私有方法(私有方法不能被重写)
子类方法重写时访问权限一定要比父类权限高
java类中只能继承一个类
java类支持多层继承
如果有有参构造方法系统就不会出现无参构造方法
访问权限:(默认的为)
当所有同学都在同一个大学时用static来修饰
public static String university;
此时demo中可以
1、(一个成员赋值之后所有的成员就不用赋值了一直都是大学)
student s1=new student();
s1.university="大学"
2、(直接赋值)
student.university="大学";
静态访问方法只能访问静态方法和静态变量
非静态方法都可以访问
多态
编译时要看左边有没有
执行时成员变量执行左边
向上转型Animal a=new cat;
向下转型cat c=(cat)a;
抽象类里不一定有抽象方法
抽象方法一定在抽象类中
抽象类的子类要不是抽象类要不就是调用了抽象类的抽象方法不然就会报错
抽象类不能直接调用抽象对象需要用多态的方法调用子类
抽象方法限定子类必须使用此方法
接口
接口中成员变量默认被final修饰 且是静态的为stastic类型
int num=1;==stastic final int num=1;
接口中默认带了public abstract方法
public abstract void method();==void show();
接口里边不能有非抽象方法
接口的作用是当一个类需要多个类来修饰时候但是类只能单继承
此时就需要接口来替代
返回值是jumping类型(接口或者aspect)
需要定义一个新的类去进行多态化然后返回