• java中的继承(一)


        在java中,所有的类都有一个默认的父类Object,即使我们没有显式的去继承这个类。在Object类中定义了一些方法,其中有几个方法是我们必须掌握的,比如equals方法,hashCode方法,wait方法,notify方法,getClass方法等。这些方法我会在以后文章给大家介绍,今天我们要讨论的是java中的继承。

        在继承关系中一般两个角色,父类和子类,其中父类也叫基类,子类也叫派生类。比如Dog类和Animal类,Dog类就是子类,Animal类就是父类,其中子类也就是Dog类继承了父类也就是Animal类的非私有属性和方法,同时子类可以增加子类特有的属性和方法,并且子类可以重写父类的方法。使用继承首先可以减少大量的重复性代码,把公共的代码提取出来放到父类中同时也方便管理。

       接下来我们用代码来进一步解释,首先定义一个父类Animal类:

    public class Animal {
        
         private Integer age;
        
         public Animal(){
             System.out.println("Animal construct method");
         }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
         
        public void eat(){
            System.out.println("eat food");
        }
    }

    然后我们在定义一个dog类:

    public class Dog extends Animal{
         private String color; //毛色
         
         public Dog(String color){
             this.color = color;
         }
         
         public void run(){
             System.out.println("Dog is running");
         }
         
         @Override
         public void eat(){
            System.out.println("dog eat bone"); 
         }
    }

    在Dog类中我们添加了子类自己的方法和属性并重写了父类的一个方法。在程序中的调用:

    public static void main(String[] args) {
             Dog dog = new Dog("红色");
             dog.eat();
    }
    
    
    控制台打印:
    Animal construct method
    dog eat bone

    这里需要说的我们在new Dog类的时候父类的构造方法也会执行并且会先于子类执行。定义一个cat类:

    public class Cat extends Animal{
        
         @Override
         public void eat(){
            super.eat();
            System.out.println("cat eat finsh"); 
         }
    }

    调用Cat的eat方法发现不只打印了“cat eat finsh”还打印了父类的“eat  food”。当父类方法和子类方法重名时,可以通过super关键字强制访问父类的变量和方法并且在new子类对象的过程中,也可以通过super关键字调用父类的构造方法,没有使用super的时候默认调用父类的默认的构造方法,父类的构造方法要先于子类执行。

  • 相关阅读:
    关于React的入门级安装和最浅显解释
    Node开发文件上传系统及向七牛云存储和亚马逊AWS S3的文件上传
    AWS S3 CLI的安装和配置
    用Node完成AWS S3的Upload流程之全世界最简版
    在Web应用中接入微信支付的流程之极简清晰版
    storm metrics
    hadoop 2.2.0 centos 6.4 x64 编译
    如何打造核心竞争力(经验总结)
    mysql event scheduler机制 与 动态表名创建
    hadoop 2.2.0 安装
  • 原文地址:https://www.cnblogs.com/suyang-java/p/10464223.html
Copyright © 2020-2023  润新知