本质:对某一批类的抽象
extends是扩展,子类(派生类)是父类(基类)的扩展
Java类中只有单继承,没有多继承(只能有一个爹,可以有很多儿)
子类继承了父亲,就会拥有父类的全部方法,但私有的不能直接调用 默认的default 可以不用写
父类最好设置为属性私有,通过方法调用
Ctrl+h查族谱
super
父类
package com.rich.jicheng;
//在Java中,所有的类,都默认直接或间接继承object
//父类
public class Person {
public Person() {
System.out.println("person的无参构造");
}
protected String name="市民";
public void print(){
System.out.println("person");
}
}
子类
package com.rich.jicheng;
//extends是扩展。子类是父类的继承。Java类中只有单继承,没有多继承
//子类,派生类
//子类继承了父亲,就会拥有父类的全部方法,但私有的不能直接调用
//默认的default 可以不用写
public class Student extends Person{
public Student() {
//隐藏代码,调用了父类的无参构造
System.out.println("student无参构造");
}
private String name="热心";
public void print(){
System.out.println("student");
}
public void test1(){
print();
this.print();
super.print();
}
public void test(String name){
System.out.println(name);
System.out.println(this.name);//当 前类
//在子类的内部中调用父类的方法和属性是通过super实现的
System.out.println(super.name);
}
}
运行
public class Application {
public static void main(String[] args) {
Student student = new Student();
student.test("黄sir");
student.test1();
}
}
运行结果
注意事项
/*1.super(); 调用父类的构造器,必须要在子类构造器的第一行 2.super必须只能出现在子类的方法或者构造方法中 3.super和this不能同时调用构造方法 */ /* VS this 1.代表对象不同 this:本身调用者这个对象 super:代表父类对象的应用 2.前提 this:没有继承也可以使用 super:只能在继承条件下才可以使用 3.构造方法 this():本类的构造 super():父类的构造 */