一、super关键字:

在对象的内部使用,可代表父类对象。

1.

访问父类的属性:super.age

2.

访问父类的方法:super.eat()

例:

package 关键字extends;

public class Dog extends Animal{
int age=20;
public void eat(){
System.out.println("狗具有吃东西的能力!");
}
public Dog(){
System.out.println("子类执行了!");
}
public void method(){
System.out.println(super.age);//访问父类的属性
super.eat(); //访问父类的方法
System.out.println(age); //访问父类的属性
eat(); //访问子类方法
}
}

结果:

父类执行了!
子类执行了!
40
动物具有吃东西的能力!
20
狗具有吃东西的能力!

二、

子类的构造过程当中必须调用父类的构造方法

创建子类对象的时候,会自动执行父类构造方法,并创建父类对象。此时就隐式的使用了super关键子。

super关键字显示的写出来:

package 关键字extends;

public class Dog extends Animal{
int age=20;
public Dog(){
super(); //super关键字
System.out.println("子类执行了!");
}
}
主函数中:
Dog dog=new Dog();//创建子类对象
//dog.method();
父类执行了!
子类执行了!

super关键字隐识表达:

public class Dog extends Animal{
int age=20;
public Dog(){
//super(); //这里注释掉super关键字
System.out.println("子类执行了!");
}
}
主函数中:
Dog dog=new Dog();
//dog.method();

结果:

父类执行了!
子类执行了!

三、

如果子类的构造方法当中没有显示调用父类的构造方法,则系统会默认调用

父类无参的构造方法

如果要显示的调用构造方法,则super关键字必须放在子类的构造方法的第一行

四、

如果子类的构造方法中既没有显示的调用父类的构造方法,

而父类又没有无参的构造方法,则编译出错

也就是说父类有有参的构造方法,子类的无参构造函数就会报错!!!

如何修改:

1.使用显示调用父类的构造函数并传入参数值;

    public Dog(){
super(3); //子类显示调用并传入参数
System.out.println("子类执行了!"); }

2.在父类中在添加一个无参的构造方法

    public Animal(){         //无参的构造方法
System.out.println("父类执行了!");
}
public Animal(int age){ //有参的构造方法
this.age=age;
}

五、总结

子类的构造过程当中必须调用父类的构造方法。

如果子类的构造方法中没有显示的调用父类的构造方法,则系统默认调用父类无参的构造方法。

如果显示调用父类的构造方法则必须放在子类构造方法的第一行。

如果子类的构造方法中既没有显示的调用父类的构造方法,而父类中又没有无参的构造方法,则编译出错!!

继承之super关键字的使用的更多相关文章

  1. 面向对象编程(十)——继承之Super关键字及内存分析

    Super关键字

  2. java学习笔记-继承中super关键字

    背景: 在java继承的概念中我们得知,被声明为私有的类成员对所属的类来说仍然是私有的.类之外的任何代码都不能访问,包括子类. super关键字的两种用法: 1.用于调用超类的构造函数: 2.用于访问 ...

  3. Java面向对象-Java类的继承及super关键字

    Java面向对象-Java类的继承 1,继承定义以及基本使用 定义:子类能够继承父类的属性和方法: 注意点:Java中只支持单继承: 私有方法不能继承: 上代码: package com.java12 ...

  4. Java继承:super关键字、构造器、final用法

    一.继承 继承好处 1.提高代码的重用性 2.提高代码的扩展性和维护性 3.为多态打下了基础 继承类型 继承子类创建对象的过程 二.super关键字的使用 理解:super代表父类的引用,用于访问父类 ...

  5. java的继承 和super关键字 构造器

    面向对象的特性二继承: 继承的好处: 1.减少代码的冗余.提高了代码的复用性 2.便于功能的扩展 3.为之后多态的使用,提供了前提 继承的格式: class A extends B{} A:子类.派生 ...

  6. Java面向对象----继承概念,super关键字

    继承概念: 继承需要符合的关系  is-a  , 父类通用更抽象,子类更特殊更具体 类之间的关系 继承体现 组合体现 实现接口体现 继承的意义 代码重用 体现不同抽象层次 extends关键字 Sup ...

  7. 继承及super关键字

    继承 继承的本质是对某一批类的抽象,从而实现对世界更好的建模 extend的意思是"扩展",子类是父类的扩展. Java中类只有单继承,没有多继承:儿子只能有一个亲生爸爸,一个爸爸 ...

  8. Java: 类继承中 super关键字

    super 关键字的作用有两个: 1)在子类中调用超类的构造器,完成实例域参数的初始化,调用构造器的语句只能作为另一个构造器(通常指的是子类构造器)的第一条语句出现, 2)在子类中调用超类的方法,如: ...

  9. java-引用数组、继承、super关键字

    1.引用类型数组: 1)   Cell[] cells = new Cell[4];   cells[0] = new Cell(2,5); cells[1] = new Cell(2,6); cel ...

随机推荐

  1. CentOS6.5编译安装Nginx1.8.1+MySQL5.5.48+PHP5.2.17+xcache3.2+ZendOptimizer-3.3.9

    一.安装Nginx: 1.解决依赖关系 编译安装nginx需要事先需要安装开发包组"Development Tools"和 "Development Libraries& ...

  2. 09-伪数组 arguments

    arguments代表的是实参.有个讲究的地方是:arguments只在函数中使用. (1)返回函数实参的个数:arguments.length 例子: fn(2,4); fn(2,4,6); fn( ...

  3. mysql当查询某字段结果为空并赋值

    1 代码 1.1 当当前字段为空,查询结果返回“none”,并且统计出现频率 select case when 字段 is null then 'none' else 字段 end as 字段, co ...

  4. bootgrid 刷新保持当前排序

    1. 前言 主要是利用了HTHNL5的localStorage技术和用ajax传输一个数组到后台并进行判断.这篇文章是解决一个小需求而来的,主要是用来记录. 2. 代码 JavaScript: var ...

  5. 【svn】svn的使用

    直接看这个教程:http://www.runoob.com/svn/svn-tutorial.html 里面讲得很有条理,很容易看懂.提供了指令以及相应的名词解释.不像其他网上的资料,干巴巴的只有一对 ...

  6. php中foreach()跳出循环或者终止循环的实现方法

    $arr = array('a','b','c','d','e'); $html = ''; foreach($arr as $key => $value){ if($value=='b'){ ...

  7. python 全栈开发,Day89(sorted面试题,Pycharm配置支持vue语法,Vue基础语法,小清单练习)

    一.sorted面试题 面试题: [11, 33, 4, 2, 11, 4, 9, 2] 去重并保持原来的顺序 答案1: list1 = [11, 33, 4, 2, 11, 4, 9, 2] ret ...

  8. 2018-2019-2 网络对抗week1 Kali安装 20165333陈国超

    Kali安装 安装过程是按照网上的教程装的,链接点击[https://blog.csdn.net/KNIGH_YUN/article/details/79949512] 安装成功的截图 主要说一下安装 ...

  9. ERP采购申请管理(三十九)

    获取当前表单在流程中的状态: /// <summary> /// 获取当前表单在流程表中的状态 /// </summary> /// <param name=" ...

  10. Spring之对象依赖关系(依赖注入Dependency Injection)

    承接上篇: Spring中,如何给对象的属性赋值: 1:通过构造函数,如下所示: <!-- 1:构造函数赋初始值 --><bean id="user1" clas ...