1.抽象父类new一个子对象,自动匹配对象类型;
2.抽象类型转明确子类型的例子:
//强转之前要进行具体子类型的判断
public void play(Pet pet){
if(pet instanceof Dog) {
Dog dog = (Dog)pet;
dog.catchingFlyDisc();
} //判断抽象对象pet是不是子类型Dog的实例,instanceof是判断的语法
if(pet instanceof Penguin) {
Penguin penguin = (penguin)pet;
penguin.swimming();
}
}
3.C++支持多继承,JAVA只支持单继承,但支持多实现。实现是对接口来说的。
public abstract class Door(){} //抽象父类
public interface Locker(){} //接口,接口本身就是抽象的,不需要再加关键字;
public class ThiefProvenDoor extends Door implements Locker (){}
4.JAVA的接口类型中:
1.属性全部都是公共静态常量:public static final
2.方法都默认是:全局抽象方法
3.无构造函数
5.多态的一个重要的方法:定义一个抽象父类对象的引用,使用时用具体的对象带入使用。
6.异常也是一个类。
7.
Scanner scanner= new Scanner(System.in); //键盘输入放入储存区中
scanner.hasNextInt(); 输出false或者true,判断储存区中输入的数据是否为整型
8.
try{
} //try中的return也挡不住finally的执行,System.exit(0)可以结束,作用是结束JAVA的虚拟机,是
finally结束的唯一条件;
catch(...){
}
finally{
} //可以省略,一般用来资源释放;
例题:
不同的异常属于不同的类。
9.ex.getMessage();可以获得异常信息
10.catch的顺序问题,如果没有继承关系谁先谁后都行,有继承关系的话,先儿子,再父亲。CTRL+H可以查看继承关系;图里也可以查看继承关系;
11.
异常抛出:throw用于函数体内的代码行,throws用于函数声明上,跟在函数后面
必检异常Exception要用throws声明(也一定要用try catch捕捉),运行期异常RuntimeException不用throws声明。