static:修饰成员变量时,表示静态成员变量或叫类变量
普通变量在使用的时候,必须要通过对象名进行调用
类变量或者静态变量可以使用对象名调用也可以使用类名进行调用
修饰方法的时候,表示静态方法或者叫类方法
普通方法在使用时,必须要通过对象名进行调用
类方法或者静态方法可以使用类名,也可以使用对象名
注意:
1.静态变量,在创建对象之前被初始化,或者说在类被载入之前进行初始化
2.静态变量被所有的对象共享,属于公共变量,对象和类都可以直接调用
3.成员变量放在堆中,而静态变量放在方法中静态区
4.静态变量不能定义在静态方法中(静态与非静态都不能定义静态属性)
5.静态方法可以在非静态方法中进行调用(非静态可调静态)
6.静态方法中不能直接调用非静态方法
7.静态方法中不允许出现this调用
8.一般工具类中的方法为static
Pet类:
public abstract class Pet {
private String name;
private int age;
//abstract 抽象方法
public abstract void print();
public void show (){
System.out.println("Pet show...");
}
public Pet (){
}
public Pet(String name,int age){
this.name = name;
this.age = age;
}
}
Dog类:
package net.laoyu.abstracts;
public class Dog extends Pet {
private String gender;
@Override
public void print() {
System.out.println("Dog print...");
}
}
PetTest类:
package net.laoyu.abstracts;
public class PetTest {
public static void main(String[] args) {
Dog dog = new Dog();
dog.print();
//Pet pet = new Pet();
// 一个抽象的类是无法被实例化的,也就是无法创建这个对象
}
}