抽象类:不能实例化!子类继承抽象类, 实例化子类对象才可以调用, 多态的体现;
抽象方法:必须被重写才能被调用;
静态方法:类名直接调用,或者实例化对象调用;
构造方法:new后面的括号里面带参数,就用带参数的构造方法实例化,
new后面的括号里面不带参数,就用无参构造方法实例化;
构造方法的重载: 例如,程序有参构造方法1和2
这里面还涉及到一个执行顺序的问题,详情对比程序运行结果
这块的学习一定不要单纯背诵,结合eclipse练习!
package practice; public class 你好{ public static void main(String[] args){ 傻 nn = new 聪(); nn.b(333); nn.c(); nn.d(); //静态方法的调用 nn.a(); nn.aa(); nn.aaa(4); //静态方法最好用类名直接调用,如下 傻.a(); 傻.aa(); 傻.aaa(3); } } abstract class 傻{ //无参构造 public 傻() { super(); System.out.println("我是无参构造方法"); } //有参构造 public 傻(int x){ System.out.println("我是有参构造方法1"); } public 傻(String x){ System.out.println("我是有参构造方法2"); } static void a(){ System.out.println("我是静态方法1"); } static int aa(){ System.out.println("我是静态方法2"); return 0; } static int aaa(int x){ System.out.println("我是静态方法3"); return 0; } //普通有返回值的方法 public int b(int x){ System.out.println("1111111111111111111111111111111"); return x; } //普通返回值类型为空的方法 public void c(){ System.out.println("22222222222222222222222222222222"); } //抽象方法和接口相似,没有方法体; abstract int d(); } class 聪 extends 傻{ //子类继承父类,父类中的抽象方法必须重写 @Override int d() { System.out.println("333333333333333333333333333333333"); return 0; } }
程序结果:
我是无参构造方法
1111111111111111111111111111111
22222222222222222222222222222222
333333333333333333333333333333333
我是静态方法1
我是静态方法2
我是静态方法3
我是静态方法1
我是静态方法2
我是静态方法3