1、继承的初始化顺序:

父类—>父类的初始化对象中的属性—>父类的构造方法—>子类—>子类的初始化对象中的属性—>子类的构造方法

  若有构造方法:则先执行属性,再执行构造方法

   若构造方法中没有对name属性进行赋值,则name的值为类属性所赋的值

package com.wangcf;
//父类
public class Animal {
public String name="属性的初始化";
public int age;
public void eat(){
System.out.println("动物可以吃东西");
} public Animal(){
name="构造方法的初始化";
System.out.println("父类的构造方法执行了");
}
}
package com.wangcf;
//子类
public class Bridge extends Animal{
public String name="子类属性";
public Bridge(){
System.out.println("子类的构造方法执行了");
}
}
package com.wangcf;
//测试类
public class Test { public static void main(String[] args) {
Bridge bri=new Bridge();  //测试初始化顺序
System.out.println(bri.name);  //测试属性的赋值方式
System.out.println("=============");
Animal ani=new Animal();
System.out.println("输出值为:"+ani.name);  //测试属性的赋值方式
}
}

 2.fianl

可以修饰类,则该类不能被继承

可以修饰方法,则该方法不能被重写

可以修饰属性:则该类的属性不会进行隐式的初始化,也就是必须赋值final int a=1,正确;fianl int a;错误

       或者在构造方法中赋值

       以上两种方式选择一种

可以修饰变量:则只可以赋值一次,那么就是常量了

3.super关键字

  在子类的对象的内部使用,可以代表父类对象,访问父类属性super.abc和方法super.abc();super()是父类不带参数的构造方法,super(int i,String s)父类带参数的构造方法?

package com.wangcf;
//父类
public class Animal {
public String name="父类的名字"; public void eat(){
System.out.println("父类:动物可以吃东西");
}
}
package com.wangcf;
//子类
public class Bridge extends Animal{
String name="子类的名字";
public void eat(){
System.out.println("子类:鸟儿喜欢吃虫子");
} public void method(){
System.out.println(name); // 调用子类的属性
System.out.println(super.name); //调用父类的属性
eat(); //调用子类的方法
super.eat(); //调用父类的方法 }
}
package com.wangcf;
//测试类
public class Test { public static void main(String[] args) {
Bridge bri=new Bridge();
bri.method();
}
}

super的应用:

子类的构造过程当中必须调用父类的构造方法,因为子类在初始化时需要先初始化父类,在这里隐式地使用了super关键字,在子类的构造方法中是这样的:

    public Bridge(){
super();  //此处写或者不写效果一样
}

如果子类的构造方法中没有显式地调用父类的构造方法那么系统默认调用父类无参的构造方法

如果显式地调用构造方法,必须在子类的构造方法的第一行

如果子类构造方法中既没有显式调用父类的构造方法,而父类又没有无参的构造发放,那么久会编译出错

Java的继承,final关键字,super关键字的更多相关文章

  1. JavaSE复习日记 : 继承关系和super关键字以及继承关系中方法的覆写

    /* * 类的继承和super关键字 * * 软件开发的三大目的: * 可拓展性; * 可维护性; * 可重用性; * * 这里单说下可重用性这一项: * 为了代码复用,复用方式有: * 函数的调用复 ...

  2. JAVA笔记5__构造块、静态块/单例设计模式/继承/final关键字/super关键字

    public class Main { { //构造块(在构造对象时调用,先于构造方法执行) System.out.println("我是构造块!"); } static{ //静 ...

  3. java继承中关于super关键字和this关键字的使用

    1.super关键字 由于子类不能继承父类的构造方法,因此,如果要调用父类的构造方法,可以使用 super 关键字.super 可以用来访问父类的构造方法.普通方法和属性.super 关键字的功能: ...

  4. 理解Java中的final和static关键字

    回顾这两个关键字前,先考虑一个问题: Static变量存储在JVM中的位置,或者说static变量是如何被加载的? JVM会把类的静态方法和静态变量在类加载的过程中读入方法区(Method Area) ...

  5. Java基础之final和static关键字

    一.final        根据程序上下文环境,它可以修饰非抽象类.非抽象类成员方法和变量.         final类不能被继承,没有子类,final类中的方法默认是final的.        ...

  6. Java基础之final和abstract关键字

    final final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变量再次初始化的话,编 ...

  7. Java基础系列--this、super关键字

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/8483623.html 一.概述 Java中this有两种用途,一种是用于指代当前对象,一种 ...

  8. Java基础之this和super关键字用法

    this 在java中,this是一个引用当前类对象的引用变量,主要有以下几种用法: 引用当前类的实例变量· this关键字可以用来引用当前类的实例变量.如果实例变量和某个方法的参数之间存在歧义(实例 ...

  9. OC基础--self关键字&super关键字

    PS:OC中的self关键字可以与C#中的this关键字区分记忆,虽然区别还是很大的. OC中的super关键字指的是父类指针 一.self关键字必须了解的知识: 1.使用场合:只能用在方法中(对象方 ...

  10. JAVA构造方法,继承关系和SUPER关键字

    SUPER可调用父类的构造方法,但要注意默认调用和参数调用. 同时,在继承类时,可以用SUPER调用其它非构造方法哟. class Test extends Object{ public Test() ...

随机推荐

  1. macOS,安装+配置+激活:MySQL8.0 + Navicat Premium12

    作者的电脑是10.13.3,些许配置偏差请自行略过 本文是学习探讨途径,请勿滥用,后果自负 MySQL8.0 篇章 官网http://www.mysql.com/downloads/ 下载即可,无需激 ...

  2. shell习题第6题:监听80端口

    [题目要求] 写一个脚本,判断本机的80端口(加入服务为httpd)是否开启,如果开启就什么都不做,如果发现端口不存在,那么重启一下httpd服务,并发邮件通知相关人员 [核心要点] 检测80端口使用 ...

  3. Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.

    最近在开发一个网站时,有个需要是 如果有新预警信息要在网页中播放提示音.页面打开会请求是否有新信息,有则播放提示音.在Chrome的最新浏览器中,播放会报错,控制台显示Uncaught (in pro ...

  4. Delphi在Android下通过WiFI进行调试

    如果我们需要调试USB程序且Android设备只有一个USB口,那么可以通过WiFi来调试程序,这样USB口就可以用了. 大致步骤如下: 1.在有root权限的Android设备里安装“Wifi AD ...

  5. gulp 输出到同一目录

    gulp.task('jsx', function () { var src='app/script/**/*.jsx'; // src='app/script/components/selloff/ ...

  6. 20155311 实验三 敏捷开发与XP实践 实验报告

    20155311 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 xp核心工具 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...

  7. 4040 EZ系列之奖金 (拓扑)

    4040 EZ系列之奖金 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 钻石 Diamond         题目描述 Description 由于无敌的WRN在2015年世界英俊帅 ...

  8. ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(零) 前言(内容已过期,阅读请慎重)

    2018-09-19 更新 :现在已经更新ASP.NET Core Middleware版本.对.NET Core SignalR感兴趣的朋友移步:https://github.com/fanpan2 ...

  9. Drupal7 针对特定条件才显示区块

    当D7中开启PHP filter模块. Text format就会多出“PHP Code”选项. 而且,新建block时也会多出"Pages on which PHP code return ...

  10. 在docker中执行linux shell命令

    在docker中执行shell命令,需要在命令前增加sh -c,例如: docker run ubuntu sh -c 'cat /data/a.txt > b.txt' 否则,指令无法被正常解 ...