多态
- 什么是多态
多态是同一个行为具有多个不同表现形式或形态的能力
多态就是同一个借口,使用不同的实例而执行不同操作
- 注意事项:
1.多态是方法的多态,属性没有多态
2.父类和子类,有联系 类型转换异常
- 存在条件:继承关系,方法需要重写,父类引用指向子类对象 Father f1 = new Son();
不能重写的方法
1.static 方法,属于类,它不属于实例
2.final 常量
3.private方法
- 1.子类能调用的方法是都是自己的或者继承父类的
- 2.父类能调用的方法是自己的 ,不能调用子类独有的方法
- 3.如果子类对父类的方法进行重写,则执行子类的方法
- 父类引用指向子类的对象
父类引用指向子类的对象
- Person person = new Student();
- 把子类转换为父类,向上转型
- 把父类转化为子类,向下转型,强制转型
- 方便方法的调用,减少重复代码,简洁1
抽象类
关键字 abstract
- 不能new抽象类,只能靠子类实现
- 抽象类中可以有普通方法
- 抽象方法必须在抽象类中
- 抽象方法由子类实现,除非子类也是抽象类
接口
定义:只有规范,无法书写方法
类关键字class,接口关键字interface
- 普通类:只有具体实现
- 抽象类:具体实现和规范(抽象类)
- 接口:只有规范,无法书写方法
接口作用:约束和实现分离,面向接口编程
重写快捷键 control+o
-
接口中所有的定义都是抽象的 public abstract(默认不写)
-
接口中方法需要类来实现,类来实现接口关键字implements
-
利用接口可以实现假的多继承
-
接口中所有常量都为pubic static final
-
接口不能实例化,接口中没有构造方法
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 { @Override public void add(String name) { } @Override public void delete(String name) { } @Override public void update(String name) { } @Override public void query(String name) { } @Override public void timer() { } }
内部类
异常
-
Java把异常当作对象处理,并且定义了他的超类java.lang.Throwable
-
Throwable包括Error和Exception
try{监测模块}
catch{捕获异常}
finally{处理善后工作} 例:释放空间资源
throw new 异常类型 :主动抛出异常
- 快捷键 选中监测代码 Ctrl+Alt+T 选择try catch finally
- 自定义异常
public class Demo01 {
public static void main(String[] args) {
try { //监测区域
System.out.println(1 / 0);
} catch (ArithmeticException e){ //捕获异常(想要捕获的异常类型)
System.out.println("程序出现异常,变量b不能为零");
}finally { //处理善后工作
System.out.println("finally");
}
}
}