zoukankan      html  css  js  c++  java
  • Java 类的继承

    一、基本知识

    1、在Java语言中,实现类的继承使用extends关键字

    格式如下:

    [public] class SubClass extends SuperClass{

      //类体的定义

    }

    2、被继承的类称为父类或超类或基类,而继承得到的类称为子类或派生类。

    3、子类继承父类的状态(属性)和行为(方法),同时也可以有自己的特征。

    二、关于继承的注意事项

    1、子类继承父类中非private的成员变量和成员方法,同时,注意构造方法不能被子类继承。

    2、定义类时若缺省extends关键字,则所定义的类为java.lang.Object类的直接子类。

      在Java语言中,一切类都是Object类的直接或间接子类。

    3、Java仅支持单重继承,即一个类至多只有一个直接父类。在Java中通过接口来实现多重继承。

    4、父类中定义的private成员变量和方法不能被子类继承,因此在子类中不能直接使用。我们可以在父类中定义公共的访问方法和修改方法,子类可以通过这些方法来实现访问和修改。

    三、举例说明

    Person类

    package com.baidu.czy;
    
    public class Person {
        //属性
        private String name;
        private int age;
        //方法
    
        public String getName() {
            return name;
        }
    
        public int getAge() {
            return age;
        }
    
        public Person() {
        }
    
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
        public void sayHello(){
            System.out.println("My name is " + name);
        }
    }

    Employee类

    package com.baidu.czy;
    
    public class Employee extends Person {
        //属性
        private double salary;
        private String name;
        //方法
        public Employee(){
    
        }
    
        public Employee(String name, int age,double salary) {
            //调用父类的构造方法
            super(name, age);
            this.salary = salary;
        }
        public double computeSalary(int hours,double rate){
            double salary = hours * rate;
            return this.salary + salary;
        }
        @Override
        public void sayHello(){
            //调用父类中被覆盖的方法
            super.sayHello();
            System.out.println("Hello,I am " + getName());
            System.out.println("I am " + getAge());
            System.out.println("My salary is " + salary);
        }
    
        
    }

    EmployeeTest类

    package com.baidu.czy.test;
    
    import com.baidu.czy.Employee;
    
    public class EmployeeTest {
        public static void main(String[] args) {
            Employee emp = new Employee("刘明",30,5000);
            System.out.println("姓名= " + emp.getName());
            System.out.println("年龄= " + emp.getAge());
            //调用从父类继承的方法
            emp.sayHello();
            //调用子类中定义的方法
            System.out.println(emp.computeSalary(10,50.0));
    
        }
    }

    运行结果

  • 相关阅读:
    Pyspark 提交任务遇到的问题
    Python的 figure参数和 subplot子图绘制
    Python的 plot函数和绘图参数设置
    Python的散点图绘制 scatter
    Python的random操作
    python的浅复制与深复制
    Python的itertools.product 方法
    python的关联图绘制 --- pyecharts
    DVWA——Brute Force暴力破解
    DVWA——简介
  • 原文地址:https://www.cnblogs.com/my-program-life/p/11037957.html
Copyright © 2011-2022 走看看