继承是类与类之间的关系,是子类继承父类的方法和属性的过程,使得子类实例化后拥有父类的方法和属性。就像生活中儿子继承父亲财产一样
子类:继承一个类的类
父类:被一个类继承的类,java中object是所有类的父类,所有类都默认继承了object类。

  1. 继承使用到的关键字:extends
public class Person {
	
}

 //Students继承了Person类,Students是子类,Person是父类
public class Student extends Person{
}
  1. 子类继承父类的所有方法和属性,除了private修饰的方法和属性
public class Person {
int age;
String sex;
	public viod say(){
	System.out.println("人会说话");
}
}
public class Student extends Person{

}
//因为子类继承了父类的方法和属性,子类实例化后就拥有了父类的属性
public class test{
  public static void main(){
Student st = new Student();
st.age;
st.sex;
st.say();
}
}
  1. 子类与父类的方法、代码块和静态方法执行顺序
    首先我们要知道被static关键字修饰是属于类变量,是随类加载而加载的,且只执行一次

因此子类与父类中代码的执行顺序是
父类静态代码快>子类静态代码块>父类构造函数>子类构造函数>普通方法
4. 无参构造
首先我们要知道每个类都有一个默认的无参构造,子类要使用父类的无参构造,需要将无参函数写出来,并使用super关键字
5. super注意点
super调用父类的构造函数,必须在构造函数的第一个
super必须只能出现在子类的方法或者构造方法中
super和this不能同时使用
6.this与super的不同点
代表的对象不同
this:本身调用者这个对象(当前类)
super:代表父类对象的应用
使用前提不同:
this没有继承也可以使用
super只能在继承条件下才能使用
构造方法:
this:本类的构造方法
super:父类的构造方法
7. 重写
子类的方法和父类的方法必须相同,方法体不同, 重写需要有继承关系,子类重写父类的方法!
1.方法名必须相同
2.参数列表必须相同
3.修饰符范围可以扩大不能缩小
4.抛出的异常范围可以缩小,不能扩大

多态

  • 即同一方法可以根据发送对象的不同而采用多种不同的行为方式
  • 一个对象的实际类型是确定的,但可以指向对象的引用类型有很多(父类、有关系的类)

多态存在的条件

  • 有继承关系
  • 子类重写父类的方法
  • 父类引用指向子类对象
  • 注意:多态是方法的多态不是属性的多态
public class test{
//一个对象的实际类型是确定的
new Student();
new Person();
// 可以指向的引用类型就不确定了:比如父类的引用指向子类
Person p = new Student();

  public static void main(){
  //Student 能调用的方法是自己的或者父类的
Student st = new Student();
//Person父类型可以指向子类但是不能调用子类独有的方法
Person p = new Student();

st.age;
st.sex;
st.say();
}
}