02.静态、继承和抽象类

1.静态static和注意点
例:
public class Demo1{
public static void say(){
System.out.println(“thisIsShenz”);
}

public void run(){
    System.out.println("jump");
}

public static void main(String[] args){
    //方法一
    Demo1.say();

    //方法二
    Demo1 d1 = new Demo1();
    d1.say();
    d1.run();

}

}

例如在上面的例子中,方法一Demo1并不需要实例化,直接就可以调用,而在方法二中。实例个体也可以调用say();方法。
从这里就可以看出对于编译顺序而言static_fun > constructed_fun > trends_fun
静态变量也类似,并且静态变量也是公用的。
例如:
public class Demo1{

private static String name;

public Demo1(String name){
    this.name = name;
}

public static void show(){
    System.out.println("+++++++++"+name);
}

public static void main(String[] args){

    Demo1 d1 = new Demo1("张三");
    Demo1 d2 = new Demo1("李四");     

    d1.show();
    d2.show();

}

}

从这个例子发现,如果是静态方法,必须引用静态变量,因为在编译class文件时就已经确定static方法了,如果是动态变量,则出错。并且两个实例产生的值都是李四,说明static String name的内存是指向同一个,才产生了覆盖。
2.继承extends
继承是指一个类继承了另一个类的属性,方法。并具有override的作用。
例如:
父类:
public class Demo{

private String name;

public Demo(String name){     
    this.name = name;
}

public void setName(String name){
    this.name = name;
}

public String getName(){
    return this.name;
}

}
子类:
public class Demo1 extends Demo{

public Demo1(String name){
  super(name);

}

public void show(){
    System.out.println("++++++++"+getName()+"***********"/*+name*/);
}

public String getName(){
    return "override";
}


public static void main(String[] args){

    Demo1 d1 = new Demo1("张三");
d1.show();
}

}

发现两个注意事项,一、子类不能调用父类的private的元素和方法,但是调用赋值,例如: String name1 = name; 这是能赋值成功的。二、子类重写父类方法后将调用子类方法。

3.抽象类abstract

抽象类是用abstract修饰的类,格式为:
public abstract class Demo{

public abstract void Jump(String name);

public String getName(){
    return this.name;
}

}

在Jump为抽象类的抽象方法,抽象类只是类的一种特殊情形,由于不知道所调用的具体情况,不给出具体的实现方法,而在子类进行方法的具体实现,对于程序的设计和优化有帮助,实例化的时候可以调用子类的构造器。
superClass sc = new sonClass();
sc.Jump();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值