static静态
修饰成员方法、成员变量。
Student.teacherName="xx老师"; //静态变量类名调用
工具类:
(个人感觉:把测试类中的方法都可以写在工具类里面)
static的注意事项
原因:静态的共享的!不代表某一个对象。静态变量是优先于对象存在的。
main方法
继承
关键字:extends
public class Student extends Person { }
父类:Person
子类:Student、Teacher
特点:
4.子类只能访问父类中非私有的成员(public)
子类能继承父类的哪些内容
子类继承的私有成员变量需要用get/set方法,不能直接调用。
只有父类中的虚方法才能被子类继承。
继承中成员变量访问特点
就近原则。现在局部位置找,本类成员位置找,父类成员位置找,逐级往上。
继承中成员方法访问特点
this调用:就近原则。
super调用:直接找父类。
方法的重写
子类出现与父类一模一样的方法声明。父类的方法不能满足子类现在的需求。
@Override重写注解
实际本质是子类方法覆盖了虚方法表中的方法。
继承中构造方法的访问特点
在子类的有参构造中手动书写,如:super ( name , age )
多态
例如:测试类中定义一个方法 public static void register(Person p){ }
这个Person p可以接收Student s,Teacher t等。
多态中调用成员
Animal a = new Dog();
sout(a.name); //动物
a.show(); //Dog--show
左边(父类),右边(子类)
多态的优势和弊端
包 packet
final关键字
final int a=20;
常量
(本类使用:private;psvm只能调用static;不可更改:final)
以上两个例子均可修改对象内部。
权限修饰符
实际开发中,一般只用private和public,成员变量私有,方法公开。
代码块
局部代码块(了解)
节约内存,提前结束变量的生命周期。(逐渐淘汰)
构造代码块(了解)
(不够灵活,逐渐淘汰)
静态代码块
初始化用户信息。
抽象类和抽象方法
关键字:abstract
抽象方法没有方法体(大括号)
接口
接口是一种规则,对行为的抽象。
接口中成员的特点:
接口和类之间的关系:
接口的新特性:
接口的应用:
内部类
成员内部类(了解)
静态内部类(了解)
成员内部类的一种,用static关键字修饰该内部类。
解释2、因为静态不需要创建对象,直接类名调用即可。