1、子类中无参构造函数,可直接继承父类中无参构造函数,前提是所有变量均为public

如下:父类Student中有空构造函数Student(),子类Pupil中有空构造函数Pupil(),后者会继承前者。

注:在本例中,父类中的name、height都是public的,如果是private就无法直接继承。

package javastudy;

public class ConfunDemo5 {

    public static void main(String[] args) {
Pupil z=new Pupil();
z.show();
}
}
class Student{    //父类Student
public String name;
public int height;
public Student()
{
this.name="";
this.height=0;
}
}
class Pupil extends Student{   //子类Pupil
private int score;
public Pupil(){ //无参构造函数Pupil()直接继承了父类中的无参构造函数Student()
score=0;
}
public void show(){
System.out.print("姓名:"+name+"\n身高:"+height+"\n分数:"+score);
}
}

输出:

姓名:
身高:0
分数:0

2、子类中无参构造函数继承父类中无参构造函数时,父类参数是private的,无法直接

需要在父类中使用get方法来调用私有变量值。

package javastudy;

public class ConfunDemo5 {

    public static void main(String[] args) {
Pupil z=new Pupil();
z.show();
}
}
class Student{ //父类Student
private String name;
private int height;
public Student()
{
this.name="";
this.height=0;
}
public String getName(){
return name;
}
public int getHeight(){
return height;
}
}
class Pupil extends Student{ //子类Pupil
private int score;
public Pupil(){ //无参构造函数Pupil()直接继承了父类中的无参构造函数Student(),但是父类中的name、height是private的
score=0;
}
public void show(){
System.out.print("姓名:"+getName()+"\n身高:"+getHeight()+"\n分数:"+score); //输出时,直接用get方法名。
}
}

3、使用super调用父类的构造函数

super必须写在方法的首行

package javastudy;

public class ConfunDemo5 {

    public static void main(String[] args) {
Pupil z=new Pupil("隔壁老王",111,222);
z.show(); Pupil w=new Pupil();
w.show();
}
}
class Student{ //父类Student
public String name;
public int height;
public Student()
{
this.name="";
this.height=0;
}
public Student(String n,int m)
{
name=n;
height=m;
}
}
class Pupil extends Student{ //子类Pupil
private int score;
public Pupil(){
super("孙悟空2",501); //使用super调用父类Student(String n,int m)方法,同时传递实际数值。super必须写在方法的首行。如果这里写super(),则调用的是父类中的Student()方法。
score=0;
}
public Pupil(String x,int y,int z){ //
super(x,y); //使用super调用父类Student(String n,int m)方法,其中super中的参数名称必须与构造函数中的参数名称一致。
score=z;
}
public void show(){
System.out.println("姓名:"+name+"\n身高:"+height+"\n分数:"+score);
}
}

输出:

姓名:隔壁老王
身高:111
分数:222
姓名:孙悟空2
身高:501
分数:0

JAVA构造函数的继承的更多相关文章

  1. Java构造函数的继承问题

    ◎构造函数的继承 1.子类只继承父类的默认(缺省)构造函数,即无形参构造函数.如果父类没有默认构造函数,那子类不能从父类继承到任何构造函数. 3.在创建对象时,先调用父类默认构造函数对对象进行初始化, ...

  2. java中子类继承父类时是否继承构造函数

    来源:http://www.cnblogs.com/sunnychuh/archive/2011/09/09/2172131.html --------------------- java继承中对构造 ...

  3. java中的继承与oc中的继承的区别

    为什么要使用继承? 继承的好处: (1)抽取出了重复的代码,使代码更加灵活 (2)建立了类和类之间的联系 继承的缺点: 耦合性太强 OC中的继承 1.OC中不允许子类和父类拥有相同名称的成员变量名:( ...

  4. java类的继承

    继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法(重写)的方式,产生一个新的类型.继承是面向对 象的三个基本特征--封装.继承.多态的其中之一,我们在使用java时编写的每一个类都是 ...

  5. 【JAVA零基础入门系列】Day13 Java类的继承与多态

    继承是类的一个很重要的特性,什么?你连继承都不知道?你是想气死爸爸好继承爸爸的遗产吗?(滑稽) 开个玩笑,这里的继承跟我们现实生活的中继承还是有很大区别的,一个类可以继承另一个类,继承的内容包括属性跟 ...

  6. java类的继承的一些细节

    类的继承是java面向对象体系的一个重要方面(封装.继承.多态),对于java类的继承,需要注意如下细节. 1.构造函数. 如果一个类没有任何构造函数,系统会默认分配一个无参的构造函数给它,这个构造函 ...

  7. JAVA面向对象之继承

    继承: 子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法 class 子类 extends 父类 { } 继承的特性: 子类拥有父类非private的属性,方法. 子类可以拥有自己 ...

  8. 第二十八节:Java基础-进阶继承,抽象类,接口

    前言 Java基础-进阶继承,抽象类,接口 进阶继承 class Stu { int age = 1; } class Stuo extends Stu { int agee = 2; } class ...

  9. java基础之继承(一)

    虽然说java中的面向对象的概念不多,但是具体的细节还是值得大家学习研究,java中的继承实际上就是子类拥有父类所有的内容(除私有信息外),并对其进行扩展.下面是我的笔记,主要包含以下一些内容点: 构 ...

随机推荐

  1. NodeJs-- 新建项目实例

    安装Nodejs: 下载地址:http://nodejs.org 设置环境变量,例如我将nodejs装在D:/program文件夹下,则设以下为系统环境变量 D:\Program\nodejs 安装E ...

  2. NMEA协议 上位机 C# (转)

    源:NMEA协议 上位机 c# 前些时间写做了两款用NMEA协议的上位机,在这里做一个总结和记录.和大家分享,也为了以后不会忘记. NMEA协议总体来说,相对简单,是气象上比较成熟的协议. 主要有以下 ...

  3. HTML学习(五)链接

    1.创建文本链接 <html> <body> <p> <a href="/index.html">本文本</a> 是一个 ...

  4. 如何在Ubuntu中使用Eclipse + CDT开发C/C++程序

    在Ubuntu中安装Eclipse和CDT步骤如下: 1. 下载资源(都下载到/home/maxw/Download/Eclipse下)    A. 下载JRE(Java Runtime Enviro ...

  5. HTML5学习笔记一:与html4的区别(整合)

    一 语法的改变 1.1 HTML5中标记方法 1.内容类型(ContentType):扩展符仍为“.html”或".htm",内容类型仍是“text/html”. 2.DOCTYP ...

  6. 笔记整理——linux

    linux文件目录介绍 (2015/4/30 19:20:28)              /proc 目录中的主要文件的说明 文件或目录名称 描 述 apm 高级电源管理信息 cmdline 这个文 ...

  7. layer弹窗插件实战用法小结1—— layer.alert()

    http://layer.layui.com 第一节:layer.alert()弹窗的用法 1.解压layer-v2.2.zip压缩包 2.拷贝layer文件夹到实战项目目录 3.注意:layer.j ...

  8. Myeclipse程序调试快捷键及步骤详解

    Myeclipse程序调试快捷键及步骤详解: 调试快捷键    Eclipse中有如下一些和运行调试相关的快捷键.    1. [Ctrl+Shift+B]:在当前行设置断点或取消设置的断点.    ...

  9. java me 旋转的X案例

    package com.xushouwei.cn; import javax.microedition.lcdui.Command;import javax.microedition.lcdui.Co ...

  10. C#中如何使用IComparable<T>与IComparer<T>接口(转载)

    本分步指南描述如何使用两个接口: IComparer和IComparable.在同一篇文章中讨论这些接口有两个原因.经常在一起,使用这些接口和接口类似 (并且有相似的名称),尽管它们用于不同用途. 如 ...