Java的学习笔记(10)对象 五

2023-02-13 21:28:24 浏览数 (1)

对象09:什么是继承 extands 修饰关键字,扩展,继承

继承是类和类之间的关系。子类和父类之间在意义上应该具有“子类 is a 父类”

Java中只有单继承,没有多继承。“一个爸爸有多个儿子,一个儿子只有爸爸”: Object——>Persion

​ |——>Studnt

​ |——>Teacher

package oop.demo05;

public class Application {

代码语言:javascript复制
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 {

代码语言:javascript复制
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 {

代码语言:javascript复制
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 {

代码语言:javascript复制
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

代码语言:javascript复制
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将不回被读出
}

}

0 人点赞