java常用关键字总结
发布时间:2020-12-15 07:24:10 所属栏目:Java 来源:网络整理
导读:super 调用父类的非静态属性和方法 调用父类的构造方法(必须写在子类构造方法的第一行) 在 子类构造方法中一定要调用父类构造方法 ,可以通过super指定调用父类的哪个构造方法,如果没有指定,在实例化子类时会自动调用父类的无参构造方法。 class Test02
super
class Test02 { Test02(int v){ System.out.println("父类的有参构造方法"); } } public class Test01 extends Test02 { Test01(int v){ super(v); System.out.println("子类的有参构造方法"); } Test01(){ super(7);//注掉该行Test01()处会飘红 System.out.println("子类的无参构造方法"); } public static void main(String[] args) { new Test01(5); new Test01(); } } this
public class Test01 { private int id; Test01(){ System.out.println("无参构造方法"); this.method(); } Test01(int a,int b){ this(a); System.out.println("有参构造方法2:"+a+","+b); } Test01(int id){ this(); this.id = id; System.out.println("有参构造方法1:"+id); } public void method(){ System.out.println("方法1"); } public static void main(String[] args) { new Test01(10,20); } } 运行结果: final
class Test02{ public final void method(){//final修饰,表明该方法为最终方法,不可以被覆盖重写 System.out.println("final修饰的方法"); } } public class Test01 extends Test02 { final int ID = 10; int num = 9; // public void method(){//会报错:‘method()‘不能覆盖‘review.Test02‘ 中的 ‘method()‘;重写方法是 final // // } public static void main(String[] args) { // new Test01().id = 100;//报错:无法为 final 变量 ‘id‘ 赋值 System.out.println(new Test01().num);//9 } } abstract
abstract class Test02{ public abstract void method(); public void method2(){ this.method();//此处的this代表的是继承该类的类,而不是该类本身 System.out.println("抽象类内部可以有普通方法"); } } public class Test01 extends Test02 { @Override public void method() { System.out.println("实现抽象类的抽象方法"); } public static void main(String[] args) { Test02 test02 = new Test01(); test02.method(); System.out.println("==========="); test02.method2(); } } 运行结果: static
class Test02 { Test02(int v){ System.out.println("父类的有参构造方法"); } } public class Test01 extends Test02 { static class Inner{ Inner(int v){ System.out.println("静态内部类的构造方法"); } } class Inner2{ Inner2(int c){ System.out.println("普通内部类的构造方法"); } } static int id; Test01(){ super(7); System.out.println("子类的无参构造方法"); } static void mathod(){ System.out.println("子类的静态方法"); } public static void main(String[] args) { int a = Test01.id; Test01.mathod(); System.out.println("===========华丽的分割线==========="); Test01 test = new Test01(); int b = test.id;//合法但不推荐 test.mathod();//合法但不推荐 System.out.println("===========华丽的分割线==========="); Test01.Inner2 inner2 = new Test01().new Inner2(1);//普通内部类的调用 Test01.Inner inner = new Test01.Inner(4);//静态内部类的调用 } } 运行结果: 补充: class Test1004{ public static Test1004 a = new Test1004(); public static Test1004 b = new Test1004(); { System.out.println("构造代码块"); } static{ System.out.println("静态代码块"); } } public class StaticDemo { public static void main(String[] args) { Test1004 t = new Test1004(); } } 运行结果: 访问限定符
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |