• 2020.7.20


    一、今日学习内容

        1、Java中的继承

        (1)Java中的继承使用关键字“extends"表示:class  子类  extends  父类{ }

                继承的作用:使用继承,子类可以拥有父类中的非私有属性,也就是说父类中的非私有属性可以供子类共享,这样,多个类中相同的属性就可以抽取出来作为父类管理。(Java不支持多继承,一个类只能继承一个类,即子类只能继承一个父类,但是一个父类可以被多个子类继承)

       (2)super关键字

                   在Java继承中,子类可以使用super关键字调用父类的非私有属性和非私有方法,还可以调用父类的非私有构造方法。

                    a.使用super关键字调用父类属性:super.父类属性     (其中,super 关键字可以省喝下面是子类调用父类属性的举例。)

                    父类: Person 定义如下:

    public class Person{
       public String name;
       public string sex;
       public int age;
       public String getName() {
         return name;
       }
        public void setName (String name) {
           this.name =name;
        }
        public String  getSex() {
           return sex;
        }
        public void setSex(String sex) {
           this.sex = sex;
        }
        public int getAge() {
           return age ;
        }
        public void setAge(int age){
           this.age=age;
        }
    }

           定义好了Person类作为父类后,接着定义子类Student

            使用super关键字调用属性

    public class Student extends Person {
        private String deparetment;  //系别
        private String specialty;  //专业
        String name = super. name;   //调用父类的属性name
    }

            使用super关键字调用方法

    public class Student extends Person {
        private String deparetment;  //系别
        private String specialty;  //专业
        String name = super. name;   //调用父类的属性name
        public void test(){
          super.getAge();
       }
    }

            (super关键字可以省略)

          b.使用super调用父类的构造方法:使用super调用父类的构造方法与使用this 调用构造方法有异曲同工之处,如果使用super(),则是调用父类的无参构造方法:如果           super (参数),则是调用父类有参数的构造方法。

             示例:调用父类构造方法

    public class Person {
         private String name;
         private int age;
         public Person() {}
         public Person(String name,int age) {
            this .name = name;
            this. age=age;
         }
    }
    class Student extends Person{
          public Student() {
              super("sky", 26); //调用父类构造方法
          }
    }

          c.子类和父类构造方法的执行顺序

                (1)子类默认调用父类的无参构造方法,也就是说,子类的构造方法中会默认调用super()并且在构造方法的第一行。     

                (2) 如果子类只提供有参的构造方法,则必须在子类的构造方法中调用父类的构造方法。

                (3)执行完父类的构造方法后,再调用本类中的构造方法.

            示例:

    public Class Person {
         private String name;
         private int age;
         public Person() {
            System. out.println("父类无参构造方法”);
         }
         public Person(String name,int age) (
               this.name =name;
               this .age =age;
               System. out.println ("父类有参构造方法");
         }
         public static void main(String[] args) {
            Student stu=new Student();
         }
    }
    class Student extends Person{
         public Student() {
             super ("sky",26); //调用父类构造方法
             System.out.println("子类有参构造方法");
         }
    }

                输出结果:父类有参构造方法

                子类有参构造方法 
    从打印结果可以看出,先调用父类的构造方法,再调用子类的构造方法
    为了更好地继承类,每个父类都应该提供无参的构造函数,避免因没有构造函数造成继承错误。
    二、遇到的问题
    没有遇到什么问题
    三、明日计划
    明天继续学习第五章的内容
  • 相关阅读:
    python函数嵌套的实用技术
    windows10 装linux子系统
    彻底测试全部拷贝list相关操作的区别python
    c语言学习
    Pickling
    Filenames and paths
    Format operator
    Reading and writing
    Persistence
    Automation testing tool comparison
  • 原文地址:https://www.cnblogs.com/wmdww/p/13348040.html
Copyright © 2020-2023  润新知