1、代码块,是用{}括起来的代码。

局部代码块,是用与限定变量的生命周期,及早释放,提高内存利用率。

构造代码块,把多个构造方法中相同的代码可以放到这里,每个构造方法执行前,首先执行构造代码块。

静态代码块,对类的数据进行出事话,仅仅只执行一次。

2、继承,把多个类中相同相同的成员给提取出来定义到一个独立的类中,然后让多个类和该独立的类产生一个关系,这多个类就具备了这些内容,这个关系叫继承。

java中继承的关键字是extends。格式为class 子类名 extends 父类名{}

继承可以提高的代码的复用性,提高代码的维护性,让类与类之间产生一个关系,是多态的前提。

继承的弊端,让类的耦合性增强,这样某个类的改变,就会影响其他和该类相关的类。打破了封装性。

java中继承的特点,只支持单继承。可以多层继承。

举例:

class GrandFather{public void show1() {System.out.println("I am grandfather");}
}class Father extends GrandFather{public void show2() {System.out.println("I am father");}
}class Son extends Father{public void show3() {System.out.println("I am son");}
}public class Main {public static void main(String[] args) {Son s=new Son();s.show1();s.show2();s.show3();}
}

继承的注意事项,子类不能继承父类的私有成员。子类不能继承父类的构造方法,但是可以通过super去访问。不要为了部分功能去继承


class Father{private int num1=10;int num2=20;private void show1() {System.out.println(num1);System.out.println(num2);}public void show2() {System.out.println(num1);System.out.println(num2);}
}class Son extends Father{}public class Main {public static void main(String[] args) {Son s=new Son();//s.show1();子类不能继承父类的私有方法//System.out.println(s.num1);子类不能访问父类的私有变量s.show2();System.out.println(s.num2);}
}

java中的成员关系

a:成员变量,子类的成员变量名称和父类中的成员变量名称不一样很简单,如果不一样子类的方法访问变量的查找顺序。在子类方法的局部范围找,有就使用。在子类的成员范围找,有就使用。在父类的成员范围找,有就使用。找不到,就报错。

b:构造方法,子类的构造方法默认会去访问父类的无参构造方法,是为了子类访问父类数据的初始化。如果父类中没有无参构造方法,子类通过super去明确调用带参构造。子类通过this调用本身的其他构造,但是一定会有一个区访问了父类的构造,让父类提供无参构造

c:成员方法,子类的成员方法和父类的成员方法不一样很简单,如果不一样找的顺序为,在子类中找,有就使用。在父类中找,有就使用。

举例:


class Father{public Father() {System.out.println("father");}
}class Son extends Father{public Son() {//super();//这个不写super,默认为有superSystem.out.println("son");}public void show() {System.out.println("hello");}
}public class Main {public static void main(String[] args) {Son s=new Son();//在构造时首先输出的是父类的构造方法s.show();}
}

class Person{private String name;private int age;public Person() {}//如果这个注销,下面的继承将编译错误public Person(String name,int age) {this.name=name;this.age=age;}//这个用的不多,但是存在public void setName(String name) {this.name=name;}public String getName() {return name;}public void setAge(int age) {this.age=age;}public int getAge() {return age;}
}
class Student extends Person{public Student() {}public Student(String name,int age) {super.setName(name);//super调用的是父类的super.setAge(age);//或者//super(name,age);}
}public class Main {public static void main(String[] args) {//方式1Student s=new Student();//无参构造会自动生成s.setName("贺志营");s.setAge(20);System.out.println(s.getName()+"---"+s.getAge());//方式2Student s1=new Student("贺志营",20);System.out.println(s1.getName()+"---"+s1.getAge());}
}

Java中代码块和继承相关推荐

  1. 举例说明Java中代码块的执行顺序

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 结论     这里先把整理好的结论抛给大家,然后我在写个程序来验证我们的结论.在Java类被new的 ...

  2. java中代码块之静态代码块和非静态代码块

    一.代码块: 语法:使用{}包裹的,可以在{}中写代码. 修饰符:static 或者不修饰. static修饰的为静态代码代码块. 格式: //静态代码块,随着类的加载児执行static{System ...

  3. java子类代码块_java中父类子类静态代码块、构造代码块执行顺序

    父类静态(代码块,变量赋值二者按顺序执行) 子类静态 父类构造代码块 父类构造方法 子类构造代码块 子类构造方法 普通方法在实列调用的时候执行,肯定位于上面之后了 //父类A public class ...

  4. 第三周 Java语法总结__static关键字__代码块__继承__this和super的区别__重写__final关键字__多态__抽象__接口__形参问题__包__权限修饰符__内部类

    文章目录 6.static关键字 1)静态static关键字的特点: 2)关于static关键字的使用注意事项 3)什么时候将变量定义为成员变量: 7.文档说明书: 8.代码块 9.继承 1)继承的概 ...

  5. 25天掌握java基础(八)——static、单例、代码块、继承

    文章目录 Demo08-static.单例.代码块.继承 1.static 1.1static静态关键字 1.1.1static修饰成员变量 1.1.2static修饰成员方法 1.1.3static ...

  6. Java 初始化 代码块_Java中初始化块详解及实例代码

    Java中初始化块详解 在Java中,有两种初始化块:静态初始化块和非静态初始化块. 静态初始化块:使用static定义,当类装载到系统时执行一次.若在静态初始化块中想初始化变量,那仅能初始化类变量, ...

  7. 万字总结,一文带你秒懂Java中的封装、继承和多态(有代码 有示例)

    Java中的封装.继承和多态 前言 一.面向对象有什么优势? 二.面向对象的三大特性! 1.封装 1.1访问限定符 1.2关于包的导入 1.2封装 2.继承 2.1继承的语法 2.2父类成员访问 3. ...

  8. 转:Java中子类是否可以继承父类的static变量和方法而呈现多态特性

    原文地址:Java中子类是否可以继承父类的static变量和方法而呈现多态特性 静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法,关于static方法,声明 ...

  9. Java中实现接口与继承的区别

    ** Java中实现接口与继承的区别 ** 首先,先来了解一下什么是接口和继承.接口一般是使用interface来定义的.接口定义同类的定义类似,分为接口的声明和接口体,其中接口体由常量定义和方法定义 ...

最新文章

  1. 年薪30万+,那些35岁的程序员都是如何度过 “中年危机” 的?
  2. java new 删除吗,java泛型对象初始化-java泛型对象会实例化吗T t=new T()
  3. 面向对象方法的优势简化软件开发的过程_软件开发技巧的途径
  4. 需求获取的三阶段:需求背景、需求调研、需求分析 (2)
  5. 21 WM配置-策略-入库策略1-定义固定仓位的策略F(Fixed Bin Strategy)
  6. vue 引入qunee_Vue页面中js引入的问题
  7. echarts横轴展示不全使用滚动条(dataZoom)的方法
  8. connect()在UDP连接中的应用一例
  9. NOWCODER暑期多校第四场F:Beautiful Garden(签到题)题解
  10. C 标准库 –stdio.h 简介
  11. 生信自学笔记(三)分子数据库
  12. OCR开源代码库介绍
  13. 在线编辑Word——插入图表
  14. xfs文件系统误删除文件恢复(testdisk工具)
  15. 【软件测试】小陈她的测试追梦之路,实习开端到测试第一人......
  16. matlab针对电阻和电源电动势为r1,第三章 电力电子与MATLAB应用技术
  17. 开关电源保险丝、整流桥及输入滤波电容的选型
  18. 2021/4/29刷题
  19. iphone与android共享位置,苹果手机,相互始终共享位置了以后,查看不了对方的位置...
  20. 使用poi导出excel

热门文章

  1. 使用JAX-WS构建Web Services .
  2. ListView的两种使用方法--Android学习笔记
  3. 带下划线的二级域名IE无法读取session
  4. [Swift实际操作]七、常见概念-(12)使用DispatchGroup(调度组)管理线程数组
  5. springcould结合springbboot微服务 开发@^——^@ 模式讲解
  6. JavaScript-DOM(2)
  7. 老话题:自己编写只截窗口客户区的截屏软件(VB2010)
  8. Android 去除标题栏和状态栏的方法
  9. MySQL之增删改查(以查为主)
  10. 坐标轨迹计算_工业机器人工具坐标系和用户坐标系的区别与联系