• Java(六)——面向对象(2)-继承


    一、继承介绍

    通过继承,只需要编写额外的功能,不再需要重复代码

    注意:

    • 在Java中,没有明确写extends的类,编译器会自动加上extends Object。所以,任何类,除了Object,都会继承自某个类
    • Java只允许一个class继承自一个类,因此,一个类有且仅有一个父类
    • 继承有个特点,就是子类无法访问父类的private字段或者private方法,把private改为protected子类就可以访问父类中的变量和方法
    • super关键字表示父类(超类,基类)
    • 在Java中,任何class的构造方法,第一行语句必须是调用父类的构造方法。如果没有明确地调用父类的构造方法,编译器会帮我们自动加一句super();
    public class Person{
        protected String name;
        protected int age;
        
        public Person(String name, int age){
            this.name = name;
            this.age = age;
        }
    }
    
    public class Student extends Person{
        private String sex;
        
        public Student(String name, int age, String sex){
            super(name, age);
            this.sex = sex;
        }
        
        public String getName(){
            return "ok"+name       // 该name为父类中的name,  这里使用super.name,或者this.name,或者name,效果都是一样
        }
    }
    

    二、super关键字

    // super的用法
    1. super.成员变量    // 调用父类的成员变量
    2. super(参数)    // 调用父类的构造方法
    3. super.成员方法   // 调用父类的成员方法
    

    三、向上转型

    public class Person{
        
    }
    
    public class Student extends Person{
        
    }
    
    Person p = new Person;
    Person p = new Student;
    

    四、向下转型

    可以强制向下转型,最好借助instanceof判断

    Person p = new Student();
    if (p instanceof Student) {
        // 只有判断成功才会向下转型:
        Student s = (Student) p; // 一定会成功
    }
    
  • 相关阅读:
    Document
    Echarts 图例交互事件,及使用
    Echarts 入门之基础使用(部份 API)
    对比 continue、break 在循环中的作用
    Markdown 简要语法速成
    CSS 实现必填项前/后添加红色*、√、X、▲
    9.React Context 上下文
    [leetcode sort]179. Largest Number
    [leetcode tree]102. Binary Tree Level Order Traversal
    [leetcode tree]101. Symmetric Tree
  • 原文地址:https://www.cnblogs.com/linagcheng/p/12166765.html
Copyright © 2020-2023  润新知