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));
    
        }
    }

    运行结果

  • 相关阅读:
    Lambda表达式详解
    .net反射详解
    vue插件大全汇总
    DockerToolbox在Win7上的安装和设置
    Ubuntu 16.04 安装 Python3.6
    Azkaban实战,Command类型单一job示例,任务中执行外部shell脚本,Command类型多job工作flow,HDFS操作任务,MapReduce任务,HIVE任务
    Azkaban 使用问题及解决(一)
    Azkaban各种类型的Job编写
    azkaban执行错误 Job failed, Cannot request memory (Xms 0 kb, Xmx 0 kb) from system for job
    window7 修改docker安装的machine 位置
  • 原文地址:https://www.cnblogs.com/my-program-life/p/11037957.html
Copyright © 2011-2022 走看看