static&继承
static
一、static的作用
1.修饰变量:一个类中的变量用static修饰后为这个类的所有对象公用
静态变量是随着类的加载而加载的,优先于对象出现的
2.修饰方法:被static修饰的成员方法,多用于测试类和工具类中
在目前的开发中没有什么实际意义
用private修饰类,不让外界创建其对象
二、工具类
1.用于处理数据的类,最好用private修饰
2.this表示当前方法调用者的地址值,由虚拟机赋值
3.当一个对象去调用方法时,这个对象的地址值会被自动传入方法中
4.但是静态方法在调用时,不会自动传入地址值。
5.所以静态方法只能访问静态的东西(不能访问如成员变量,成员方法等)
继承
一、引入
当两个类有共同的属性时,可以通过新建父类,然后继承给子类
比如Person类继承给Student和Teacher
用extends关键字
public class Student extends Person {}
Student称为子类,Person称为父类
二、使用继承结构的好处
1.提供代码的复用性
2.子类可以在父类的基础上增加功能
三、什么时候使用继承
1.当类与类直接,存在相同(共性)的内容,并满足子类是父类的一种,就可以考虑使用继承来优化代码
四、举例
// Manager:姓名,工具,管理奖金
// Coder:姓名,工资
可以定义父类:Employ
// Coder:id,名字,年龄
// Phone:价格
这时候就不能定义Goods,因为Coder不是商品,不能写继承结构!
五、特点
1.Java只能支持单继承,不支持多继承,但支持多层继承
ps.如果两个父类都有同一个方法,那就会出错,所以不能多继承
2.每一个类都直接或间接的继承于object类,这是所有类的父类或间接父类
六、有什么事是够继承下来的
类中的元素 | Public | private |
---|---|---|
构造方法 | NO | NO |
成员变量 | YES | YES |
成员方法 | YES | NO |
值得注意的是,private修饰的成员变量被子类继承之后也需要对应的get和set方法才能修改,因为其本身也是private属性
这里有一个误区:子类只能访问父类中非private的项目,这是错误的
同时有一点需要注意:只有虚方法(非private,static,final标记的方法)才能被继承