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. Python学习:15.Python面向对象(二、继承的各种情况)

    一.什么是继承 继承是一种创建类的方法,在python中,一个类可以继承来自一个或多个父.原始类称为基类或超类. #创建父类 class Parent1: pass class Parent2: pa ...

  2. 苹果cms网站漏洞修复解决办法

    苹果cms系统,是目前很多电影网站都在使用的一套网站系统,开源,免费,扩展性较好,支持一键采集,伪静态化,高并发的同时承载,获得的很多站长的喜欢,于近日被网站安全检测发现,maccms存在网站漏洞,s ...

  3. go语言的指针

    什么是指针 一个指针变量指向了一个值的内存地址.(也就是我们声明了一个指针之后,可以像变量赋值一样,把一个值的内存地址放入到指针当中.) 类似于变量和常量,在使用指针前你需要声明指针.指针声明格式如下 ...

  4. Tomcat设置是否可以上传文件到服务器

    今天,我做的一个点菜项目要求做一个添加菜品,把菜品的路径保存进数据库,然后将菜品的图片保存进tomcat相应的目录中. 一开始,我在客户端写的代码是直接向tomcat的目录写文件,但是会出现403错误 ...

  5. 3809: Gty的二逼妹子序列

    3809: Gty的二逼妹子序列 链接 分析: 和这道AHOI2013 作业差不多.权值是1~n的,所以对权值进行分块.$O(1)$修改,$O(\sqrt n)$查询. 代码: #include< ...

  6. DSP28335声音降噪(未完成)

    1. 确定使用的模块是Webrtc-NS,采集声音的芯片TLV32AIC23,实际测试发现Webrtc-NS无法使用,所以改成FIR滤波器. 从时域特性上来看,数字滤波器还可以分为有限冲激响应数字滤波 ...

  7. 【搜索好题】bzoj1501 [NOI2005]智慧珠游戏

    bzoj1501 [NOI2005]智慧珠游戏 搜索苟逼题系列. 暴力枚举每一种情况(包括旋转翻转全都考虑在内)然后码出代码. (正解似乎不是这样子的) 那年好像还有平衡树苟逼题维护数列233333心 ...

  8. Wince 中访问WCF服务

    由于本文并非WinCE开发普及篇,所以一些WinCE开发和WCF开发的基础还请移步百度和谷歌寻找答案,然后结合本文开发出WinCE中如何访问WCF,谢谢. 开发环境 IDE:Visual Studio ...

  9. Spark实施备忘

    AttributeError: 'SparkConf' object has no attribute '_get_object_id' 初始化SparkContext时出现这种错误是因为把Spark ...

  10. python全栈开发-前方高能-生成器和生成器表达式

    python_day_13 今日主要内容1. 生成器和生成器函数生成器的本质就是迭代器生成器的三种创建办法: 1.通过生成器函数 2.通过生成器表达式创建生成器 3.通过数据转换 生成器函数: 函数中 ...