Java代码块与Java继承
来源:互联网 发布:网络安全工程师招聘 编辑:程序博客网 时间:2024/06/10 15:44
一.局部代码块
1)位置:方法中
2)作用:限定局部变量的声明周期。因为局部代码块可以产生不同的作用域
public class Demo01 {public static void main(String[] args) {{ int num=10; System.out.println(num);}}
二.构造代码块
1)位置:在类中,方法外
2)定义:直接在类中编写代码块,称为构造块
3)代码
class Demo{ } {System.out.println("构造代码块") ; }
注意:构造块优先于构造方法执行,且执行多次
三.静态代码块
1)定义:直接用static关键字来声明的
2)位置:在类中,方法外
3)特点:只加载一次,随着类的加载而加载
4)应用场景:用来加载驱动
5)代码:
class Demo{ static{ System.out.println("静态代码块") ; }
四.三个代码块的执行
class Student { static { System.out.println("Student 静态代码块”);3 } { System.out.println("Student 构造代码块”);4 6 } public Student() { System.out.println("Student 构造方法”);5 7 } } class Demo2_Student { static { System.out.println("Demo2_Student静态代码块”);1 } public static void main(String[] args) { System.out.println("我是main方法”);2 Student s1 = new Student(); Student s2 = new Student(); } }
执行顺序:
父类静态代码块→子类静态代码块→父类构造代码块→父类构造方法→子类构造代码块→子类构造方法
1:Demo2_Student静态代码块
2:我是main方法
3.Student 静态代码块
4.Student 构造代码块
5.Student 构造方法
6.Student 构造代码块
7.Student 构造方法
五.继承(用 extends关键字继承)
1)定义:
把多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么这个多个类无需再定义这些属性和行为,只要继承那个类就行了。
2)特点: 1.Java只支持单继承,不支持多继承。 (就是说,一个类继承了一个父类,不允许在继承别的父类)
2.Java支持多层继承。
class DemoA {//爷爷类 String name; //名字 public void sayHi() { System.out.println(name); }}class DemoB extends DemoA{//父类}class DemoC extends DemoB{//子类}
3)优点
1.提高代码的复用性
2.让类与类之间产生联系
3)形式:
class 子类的类名 extends 父类的类名{
}
4)代码
public class Demo02 { public static void main(String[] args) { Cat cat = new Cat(); cat.color="黑猫"; cat.leg=4; cat.sayHi(); }} //写一个动物类class Animal{ String color; //颜色 int leg ; //腿数 String name; public void sayHi() { System.out.println(color+"---"+leg); }} class Cat extends Animal{ } class Dog extends Animal{ }
六.继承中this和super
1)应用场景
1.当子类和父类出现同名的成员变量和成员方法时,用super2.当子类要调用父类构造函数时,可以用super
2)区别
1.成员变量(成员变量同名)
this.num; 这个是本类的成员变量super.num 这个是父类的成员变量
2.构造方法(注意 继承不能继承父类的构造函数)
public Student(String name,int age) {//本类的构造方法 //调用 父类的 有参构造方法 super(name,age); }
3.成员方法(成员方法名相同)
class Father{ public void siri() { System.out.println("我能说英文"); } } class Son extence Father{ public void sc(){//本类的成员方法 super.siri();//父类的成员方法 } }
七.方法的重写
1.定义
子类中出现与父类一模一样的方法时(方法名相同)
2)应用场景
当子类需要父类的功能,而功能主体子类有自己的功能时,可以重写父类中的方法,这样,既继承了父类的功能,又定义了子类特有的内容。
3)代码
class Ios7{ public void siri() { System.out.println("我能说英文"); } }class Ios8 extends Ios7{ //注解 @Override 标识着这个方法是重写父类的方法 @Override public void siri() { // TODO Auto-generated method stub //这里调不调用父类的方法 要根据实际开发来写 super.siri(); System.out.println("功能升级 我会说中文了"); public void sc() { super.siri(); } }
八.final关键字(修饰类,成员变量,成员方法)
1.特点
1)修饰类的时候,该类不能被继承
2)修饰成员变量的时候,该成员变量不能被修改,变成常量
注:用final修饰的变量的命名规则:
名字全部大写,多单词用下划线分开 MAX_VALUE
final修饰成员变量,必须初始化,初始化有两种
1)直接赋初值
2)构造方法中赋值
final int num; public Team() { num=10; }
3)修饰成员方法的时候,该成员方法不能被重写
- Java代码块与Java继承
- JAVA 代码块 继承
- JAVA 代码块 继承
- Java中继承与代码块综合
- java基础:代码块、继承
- JAVA 代码块 继承 final
- 关于java代码块与继承的执行顺序
- Java面试题之继承与代码块
- java学习 java -- 代码块 继承
- java 代码块,构造代码块,与静态代码块
- java学习笔记代码块和继承
- java基础--08代码块、继承
- Java-基础-代码块-继承--关键字
- JAVA-代码块、继承、final关键字
- Java笔记之代码块、继承、final
- java代码块,继承,final关键字简述
- java中的代码块和java的继承关系
- java 静态代码块与非静态代码块
- Java学习笔记7——集合框架
- python: 大小写转换 内建函数
- 投资比写程序难多了
- python--leetcode538. Convert BST to Greater Tree
- [Leetcode] 508. Most Frequent Subtree Sum 解题报告
- Java代码块与Java继承
- Android视频渲染: YUV转RGB
- Java homework 10
- 纯css选项卡及下拉菜单
- Java应用OpenvCV指南其六:利用OpenCV实现的数字识别(验证码识别)
- javascript编程习惯和问题
- spark学习-54-Spark RDD的clean()方法
- 模板
- 重复造轮子-C语言风格string库函数的实现