封装
alt+insert
继承
重写:需要有继承关系
方法名必须相同
参数列表必须相同
修饰符,范围可以扩大但是不能缩小
抛出异常,可以缩小,但是不能扩大
重写,子类得方法和父类必须一致,方法体不同
为什么要重写:
- 父类得功能,子类不一定需要,或者不一定满足
- ALT+Insert ; override
多态
Person s1 = new Student
对象能执行哪些方法,看左边类型
多态注意事项
- 多态是方法得多态,属性没有多态
- 父类和子类,都有联系,类型转换异常
- 存在条件:继承关系,方法需要重写,父类引用指向子类对象
instanceof
(类型转换)引用类型
object instanceof Student;//true
object instanceof Person;//true
X instanceof Y;//能不能通过
Static
-
在堆的方法区
-
static{ //静态代码块 } { 匿名代码块 }
-
静态代码块只执行一次
-
静态导入包
import static java.lang.Math.random
抽象类
抽象类的所有方法,继承了它的子类,都必须实现他的方法
public abstract class Action{ //约束,有人帮我实现 public abstract void doSth(); }
特点:
1. 不能new这个抽象类,只能new子类 2. 抽象类中可以写普通方法 3. 抽象方法必须写在抽象类中
接口
只有规范!自己无法写方法~专业的约束!
public interface UserService{
void add(String name);
void delete(String name);
void update(String name);
void query(String name);
}
public class UserServiceImpl implements
UserService,TimeService{
//必须重写所有接口中的方法
}
内部类
Outer.Inner inner = outer.new Inner();
可以操作外部类的私有属性、私有方法
一个java类中可以有多个class类,但是只有一个public class
异常
try{
a=1/0;
}catch(ArithmeticException e){
system.out.println("程序异常");
}finally{
print("finally");
}
catch可以写多个
Ctrl+Alt+T选中,生成代码块
throw
主动抛出异常,方法中抛出异常,假设处理不了这个方法,主动抛出
自定义异常
public class MyException extends Exception{
//传递数字>10;
private int detail;
public MyException(int a){
this.detail = a
}
//toString
public String toString(){
return "MyException{" +
"detail=" + detail + "}";
}
}