java的static被继承_java 继承,static

static与继承

子类不能继承父类中的static成员

子类可以定义与父类的static变量同名的变量

子类不能定义与父类static方法同名的成员方法;但是子类可以定义与父类static方法同名的static方法

父类的非静态方法不能被子类覆盖为静态

注意与访问控制符的结合

public class Father{

static int i =1;

static void method(){}

}

class Son extends Father{

int i = 1; //合法

void method(){} //非法

static void method(){} //合法!注意访问控制符

}

静态初始化器

class Person {

public static int total;

static {

total = 100;//为total赋初值

}

…… //其它属性或方法声明

}

由static{ …} 构成,在类的定义体中、方法的外部可包含static语句块。

static语句块仅在其所属的类被载入时执行一次

static块通常用于初始化static (类)属性

如果有多个static块,在类的初始化时会依次执行。

static 与继承

n子类不能继承父类中的static成员

n子类可以定义与父类的static变量同名的变量

n子类不能定义与父类static方法同名的成员方法;但是子类可以定义与父类static方法同名的static方法

n父类的非静态方法不能被子类覆盖为静态

n注意与访问控制符的结合

Abstact

用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法。

含有抽象方法的类必须被声明为抽象类。

抽象类不能被实例化(须说明)。

抽象方法只需声明,无方法体。

抽象类的继承

抽象类(抽象方法)是为继承而设计的。

子类继承父类(抽象类),则子类应重写父类所有的抽象方法,称为“实现”。

子类如果没有实现某一抽象方法,则子类也应声明为抽象类,否则编译错误。

没有抽象构造方法

内部类

public class A{

private int s = 111;

public class B {

private int s = 222;

public void mb(int s) {

System.out.println(s); // 局部变量s

System.out.println(this.s); // 内部类对象的属性s

System.out.println(A.this.s); // 外层类对象属性s

}

}

public static void main(String args[]){

A a = new A();

A.B b = a.new B();

b.mb(333);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值