继承

 

 

 

public class Application {
    public static void main(String[] args) {

          Person person=new Person();

          Student student=new Student();
         //student.test("张三");
         //student.test1();

    }
//学生  is  人 :派生类 ,子类
//子类继承了父类,就会拥有父类1的全部方法!
public class Student  extends Person {

    public Student(){
        //隐藏代码:调用了父类的无参构造
        super();  //调用父类的构造器,必须要在子类的第一行
        System.out.println("Student无参执行了");

    }

    private String name="lisi";

    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);  //lisi
        System.out.println(super.name);  //zhangsan
    }
}
//Person 人:父类
public class Person {

    public Person(){
        System.out.println("Person无参执行了");
    }

    protected String name="zhangsan";

    //私有的无法被继承
    public void print(){
        System.out.println("Person");
    }
}

 

super注意点:

          1.super调用父类的构造函数,必须在构造方法的第一个

          2.super必须只能出现在子类的方法或者构造方法中!

          3.super 和 this 不能同时调用构造函数!

 

Vs  this:

          代表的对象不同:

                     this:本身调用着这个对象

                     super:代表父类对象的应用

          前提:

                     this:没有继承也可以使用

                     super:只能在继承条件下可以使用

          构造方法:

                     this():本类的构造

                     super():父类的构造

 

重写:需要继承关系,子类写父类的方法!

           1.方法名必须相同

           2.参数列表必须相同

           3.修饰符:范围可以扩大但不能缩小;     public>Protected>Default>private

           4.抛出的异常:范围,可以被缩小,但不能扩大;    ClassNotFoundException -->Exception(大)

 

重写,子类的方法和父类必须要一致:方法体不同!

 

为什么要重写:

                1.父类的功能,子类不一定需要,或者不一定满足!

                Alt + Insert  :  override

 

posted @ 2021-03-29 16:30  cengxuyuan  阅读(56)  评论(0)    收藏  举报