一 方法
1.1 类方法
Class.run();
类中 static 方法 里面调其它的static 方法 。
直接写函数名
普通方法 ,调类中的普通方法 ,可以省 this
1.2 普通方法
Stu s1 = new Stu();
s1.study();
//注意,写有了参构造,一定要同时写无参构造 。。
idea很酷的操作。
alt + insert
封装的意义 。
- 提高程序安全性,保护数据。
- 隐藏实现细节
- 统一接口。
- 系统可维护增加了。
二 继承 is-a
2.1 super 的使用。
调父的构造 。
package com.company;
public class Stu extends Person {
private String name = "xxx";
public Stu() {
super(); //仅限这里用。
}
}
调父的方法
super.func();
2.2 重写。
静态方法 ,仅和左边有关。
普通方法重写
定义父子类
package com.company;
public class B {
public void test(){
System.out.println("B=>test();");
}
}
package com.company;
public class A extends B {
@Override
public void test() {
System.out.println("A=>test();");
}
}
父子方法调用
package com.company;
public class Main {
public static void main(String[] args) {
A a = new A();
B b = new A();
a.test();
b.test();
// write your code here
}
}
运行结果
一些绕的东西
Stu s1 = new Stu();
Person = s2 new Stu();
//s2 仅能调用Person的方法 。 (如果 override 则用Stu 的)
三 多态
同一方法,根据发送对象的不同,而采用不同的行为方式 。 一个对象,其类型的确定的,但可以指向不同的引用 。
1 多态是方法的多态,
2 父类和子类有联系。
3 存在条件 ,继承关系 ,方法需要重写。父类引用子类。
instanceof 编辑通过。
四 其它
转换 子转类,会丢方法。 父可以转子
Stu stu = (Stu) person();
/*
1. 父类引用指向子类的对象。
2. 把子类转换为父类,向上转型 (会被切)
3. 父转子,强转。
*/
五匿名代码块
//普通 { //每次都跑 }
static { //仅首次 }
接口。
- 约束
- 定义一些方法 ,不同人的实现
- 可以实现多个接口。(必须全部实现 )