继承

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

继承性主要利用特定对象之间的共有属性。在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

原文地址:https://www.cnblogs.com/cycanfly/p/5252144.html