java中继承相关

您所在的位置:网站首页 继承时子类可以添加新的方法和状态 java中继承相关

java中继承相关

2023-08-01 04:12| 来源: 网络整理| 查看: 265

java继承

在Java中定义一个类时,让该类通过关键字extends继承一个已有的类,这就是类的继承(泛化)。被继承的类称为父类(超类,父类),新的类称为子类(派生类)。子类继承父类的所有属性和方法,同时也可以增加自己的属性和方法。Java中只能单继承,也就是说每个类只能有一个直接父类;一个父类可以有多个子类。 Java语言中,类的继承的声明格式是: 在继承关系中:

1、子类可以得到父类的属性和方法,这是从父类继承来的; 2、子类可以添加新的属性和方法,添加父类所没有的; 3、子类可以重新定义父类的属性和方法,修改父类的属性和方法,为自己所用

创建子类对象时,当调用子类的构造方法时,必须先调用父类的构造方法,如果子类的构造方法中没有调用父类的构造方法,则编译器会默认在子类的构造方法中的第一句加上super()来调用父类的默认无参构造方法,如果父类中没有无参的构造方法,则系统编译出错。 在创建子类对象时,它首先调用父类的构造方法,然后运行实例变量和静态变量的初始化器,最后才运行构造方法本身。默认情况下,会调用父类无参的构造方法。

public class Test_32_继承 { public static void main(String[] args) { Worker_32 w=new Worker_32();//Worker是继承Employee的子类 w.name="tom"; w.birth="1991-10-07"; w.salary=50000; w.getDetail(); w.getSalary(); System.out.println("allowance is "+w.dressAllowabce()); } } class Employee_32{ String name; String birth; double salary; Employee_32(int a){ System.out.println("Employee_32()"); } public void getDetail() { System.out.println("name="+name+",birth="+birth); } public double getSalary() { System.out.println("salary="+salary); return salary; } } class Worker_32 extends Employee_32{//重载Employee类 Worker_32(){ super(8);//父类没有无参构造器,不写super(8)会默认调用父类无参构造器,会报错 System.out.println("Worker_32()"); } public double dressAllowabce() { double allowance=200; return allowance; } }

上述代码会先执行父类的构造方法,先输出Employee_32()然后调用子类自己的构造方法,输出Worker_32() 请添加图片描述

子类将从父类中继承下来的方法重新实现,叫做覆盖(Overriding)或重写(rewrite),方法覆盖的原因是父类中对应方法的行为不适合子类的需要,因此在子类中进行相应的调整。 覆盖(Overriding)是对从父类中继承来的方法进行改造,在子类继承父类时发生,在子类中的覆盖方法与父类中被覆盖的方法应具有:

1、相同的方法名 2、相同的参数列表(参数数量、参数类型、参数顺序都要相同) 3、相同的返回值类型 4、子类覆盖方法的访问权限要不小于父类中被覆盖方法的访问权限



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3