• 继承


    软件的代码使用继承思想可以缩短软件开发的时间,复用那些已经定义好的类可以提高系统性能,减少系统在使用过程中出现错误的几率。

    继承性主要利用特定对象之间的共有属性。在Java语言中奖类似于平行四边形的类称为子类,将类似于四边形的类称为父类或超类。值得注意的是,可以说平行四边形是特殊的四边形,但不能说四边形是平行四边形,也就是说子类的实例都父类的实例,但不能说父类的实例是子类的实例。

    父类与子类存在一种层次关系。一个类处于继承体系中,它既可以是其他类的父类,为其他类提供属性和行为,也可以是其他类的子类,继承父类的属性和方法。如三角形既是图形类的子类同时也是等边三角形的父类。

    类的继承

     在Java语言中,继承通过extends关键字来实现。也就是用extends指明当前类是子类,并指明从哪个类继承而来。即在子类的生命中,通过使用extends关键字来显示的指明其父类。其基本的声明格式如下:

    {修饰符}class  子类名  extends  父类名{

        类体

    }

    修饰符:可选参数,用于指定类的访问权限,可选值为public、abstract和final。

    子类名:必选参数,用于指定子类的名称,类名必须是合法的Java标识符。一般情况下,要求首字母大写。

    extends父类名:必选参数,用于指定要定义的子类继承于哪个父类。

    子类具有父类的公开的成员。

    继承中的重写

    重写是指父子类之间的关系,当子类继承父类中所有可能被子类访问的成员方法时,如果子类的方法名与父类的方法名相同,那么子类就不能继承父类的方法,此时,称为子类的方法重写了父类的方法。重写体现了子类补充或者改变父类方法的能力。通过重写,可以使一个方法在不同的子类中表现出不同的行为。

    说明:重写也可以成为覆盖。

     1 package org.hanqi.pn0120;
     2 
     3 public class Father {
     4     
     5     private String name;
     6     
     7     private int age;
     8 
     9     public String getName() {
    10         return name;
    11     }
    12 
    13     public void setName(String name) {
    14         this.name = name;
    15     }
    16 
    17     public int getAge() {
    18         return age;
    19     }
    20 
    21     public void setAge(int age) {
    22         this.age = age;
    23     }
    24     
    25     public Father()
    26     {
    27         System.out.println("父类的构造方法");
    28     }
    29     
    30     //工作
    31     public void work()
    32     {
    33         System.out.println("我劳动我光荣");
    34     }
    35 
    36 }
    Father
    package org.hanqi.pn0120;
    
    public class TestJiCheng {
    
        public static void main(String[] args) {
            
            
            Father f=new Father();
            
            f.setName("父亲");
            
            f.setAge(50);
            
            System.out.println("名字是"+f.getName()+" 年龄是"+f.getAge());
            
            f.work();
            
            System.out.println();
            
            Son s=new Son();
            
            s.setName("儿子");
            
            s.setAge(20);
            
            System.out.println("名字是"+s.getName()+" 年龄是"+s.getAge());
            
            s.work();
            s.sing();
    
        }
    
    }
    TestJiCheng
    package org.hanqi.pn0120;
    
    public class Son extends Father {
        
        //Object a;所有类的父类
        
        public Son()
        {
            System.out.println("子类的构造方法");
        }
        
        public void sing()
        {
            System.out.println("我喜欢唱歌");
        }
        
        
        //覆盖(重写)
        public void work(int i)
        {
            System.out.println("我不喜欢上班,我要去参加海选");
        }
    
    }
    Son

  • 相关阅读:
    Codeforces Round #709 (Div. 2, based on Technocup 2021 Final Round)
    Codeforces Round #708 (Div. 2)
    Educational Codeforces Round 106 (Rated for Div. 2)
    ccf csp 202012-1
    带配额的文件系统 (带模拟)
    阔力梯的树
    Codeforces Round #707 (Div. 2, based on Moscow Open Olympiad in Informatics)
    如何获取某个网站IP地址?
    C++开发者眼中的Java关键字abstract
    Java代码中如何获文件名和行号等源码信息?
  • 原文地址:https://www.cnblogs.com/cycanfly/p/5252144.html
Copyright © 2020-2023  润新知