本篇主要总结JAVA中的super、this、final、static、break、continue
1、super
super主要用在继承当中,表示调用父类的构造函数。
1.如果要在子类方法中调用父类被覆盖的实例方法,则可以使用super限定来调用父类被覆盖的实例方法
class B { public B() { } public void C() { System.out.println("B中的C"); } } public class A extends B { public void C() { System.out.println("A中的C"); } public void D() { super.C(); } public static void main(String[] args) { A a = new A(); a.D(); } } 输出结果是:B中的C
2.如果在构造器中使用super,则super用于限定该构造器初始化的是该对象从父类继承得到的实例变量,而不是该类自己的实例变量
3.如果父类定义了无参的构造方法,那么子类可以随便定义构造方法,系统会自动在构造方法的第一行隐式添加一个super()来调用父类的无参构造方法
class B { public B() { System.out.println("父类的构造方法"); } } public class A extends B { public A() { //super(); 这里隐式添加了一个super() System.out.println("子类的构造方法"); } public static void main(String[] args) { A a = new A(); } } 输出结果为:父类的构造方法 子类的构造方法
如果父类没有定义无参构造方法,那么子类只可以定义和父类构造方法的参数列表相同个数的子类构造方法,然后在构造方法中显式调用父类的super(参数...)
如果父类同时定义了有参的和无参的构造方法,那么子类可以随便定义构造方法,并且子类构造方法的第一行可以随便使用加或者不加参数的super()来调用父类的构造方法
2、this关键字
在JAVA中,this关键字指向调用该方法的对象。有以下作用
1.调用当前类的属性和方法
2.调用构造方法
public class People { private String name; private int age; public People(String name, int age) { this(); this.name = name; this.age = age; } public People() { System.out.println("无参构造方法"); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void say() { System.out.println(getName() + "-----" + getAge()); } public static void main(String[] args) { People p = new People("王菲", 50); p.say(); } }
3、final关键字
1.final在JAVA中被称为完结器,表示最终的意思
2.final能声明类、方法和属性:
使用final声明的类不能被继承(类似于古代的太监,哈哈)
使用final声明的方法不能被重写
使用final声明的变量变成常量,不能被修改
4、static关键字
static在JAVA中表示静态的,用来修饰方法、成员变量、代码块、内部类等(外部类不能使用static)
1.使用static声明的属性被成为全局属性
2.使用static声明的方法成为静态方法,可以使用类名直接调用
3. 静态成员不能直接访问非静态成员,即使是静态内部类,也不可以访问外部类 的非静态对象
于是我们可以将类级别的变量声明为static。静态变量是属于类的,而不是属于类创建的对象或实例。static经常与final一起使用来修饰一个可供所有对象共同使用的常量资源。
5、break关键字
break经常被用在循环中,用来结束循环,当触发某个条件后,执行break,程序不再管循环是否执行完毕,直接跳出循环,执行循环下面的代码
break完全终止循环
6、continue关键字
continue被用于跳出循环,当满足某个条件后,跳出当前循环,执行下一个循环。
continue只是跳出本次循环,不会终止