java 继承,static

论坛 期权论坛 脚本     
匿名技术用户   2020-12-28 13:22   25   0

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); 
        }
}


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP