对象09:什么是继承 extands 修饰关键字,扩展,继承
继承是类和类之间的关系。子类和父类之间在意义上应该具有“子类 is a 父类”
Java中只有单继承,没有多继承。“一个爸爸有多个儿子,一个儿子只有爸爸”: Object——>Persion
|——>Studnt
|——>Teacher
package oop.demo05;
public class Application {
public static void main(String[] args) {
Student student = new Student();
student.say();
}
} package oop.demo05;
//Persion是父类,Student和Teacher是派生类 // 子类继承了父类,就拥有了父类的全部方法 //public 公共 //protected 受保护的 //default 常规,默认 //private 私有,子类不能继承
//在java中所有的类 都默认继承Object类 // CTRL+ H 快捷键 查看层次结构
public class Persion {
public void say(){
System.out.println("说了一句话");
}
} package oop.demo05;
public class Student extends Persion{ //extends 继承了Persion的公共属性和公共方法 Student是Persio
} package oop.demo05;
public class Teacher extends Persion{ //extends 继承了Persion Teacher是Persion
} 对象10:Super详解(继承) super 注意点
super调用父类构造方法,必须在构造方法的第一个 super必须只能出现在子类的方法或者构造的方法中 super和this不能同时调用构造方法 VS this
代表的对象不同:
this :本身吊桶的是当前类的对象
super:是指父亲类的对象的应用
前提:
this:没有继承也可以用
super;只能在继承条件才可以使用
构造方法
this(); 调用本类的构造
super();调用父类的构造
package oop.demo05;
public class Application {
public static void main(String[] args) {
Student student = new Student();
student.say();
student.test("李白");
student.test1();
}
} package oop.demo05;
//Persion是父类,Student和Teacher是派生类 // 子类继承了父类,就拥有了父类的全部方法 //public 公共 //protected 受保护的 //default 常规,默认 //private 私有,子类不能继承
//在java中所有的类 都默认继承Object类 // CTRL+ H 快捷键 查看层次结构
public class Person {
public void say(){
System.out.println("说了一句话");
}
public void Person() {
System.out.println("Person无参执行");
}
protected String name = "zhangsan";
public void print(){
System.out.println("Person");
}
} package oop.demo05;
public class Student extends Person{ //extends 继承了Persion的属性 Student是Persio
private String name = "libai";
public void print(){
//执行顺序,先父后子
//隐藏代码,调用了父类的无参构造
//父类无参,子类的也无参
System.out.println("Student");
}
public Student() {
System.out.println("Student无参执行");
}
public void test(String name){
System.out.println(name); //李白
System.out.println(this.name); //libai
System.out.println(super.name); //zhangsan
}
public void test1(){
System.out.println("=================");
print(); //student
this.print(); //student
super.print(); //Persion super读取了父类的print方法。如果print方法被声名为private将不回被读出
}
}