2017.4.7 笔记 重写 多态 接口
2017-04-07 16:55 mojiayi 阅读(176) 评论(0) 编辑 收藏 举报String默认值是null 单继承:一个子类只能有一个父类,一个父类可以有多个子类 重写:方法明相同,返回类型相同,参数相同 多态是在继承的基础之上 多态:父类型的引用指向子类型对象 父类型的引用指向子类型的对象,使用该引用调用方法,首先在父类中查找有没有这个方法,如果有,接着去子类中查找有没有该方法。如 果子类也有该方法,调用子类的方法。如果子类中没有,直接调用父类的该方法。父类没有,直接报错。 Animal3 animal =new Dog3();//多态:父类型的引用指向子类型对象 Dog3 dog=(Dog3)animal;//向下类型转换 dog.run(); 如果父类的引用调用父类的方法需要向上类型转换 调用子类独有的方法,需要向下类型转换 向下类型转换 显示转换,向上类型转换是 隐式转换 抽象类:使用abstract修饰的类,叫做抽象类 注意1.抽象类无法直接实例化 2.抽象类中可以有抽象方法,也可以有具体的方法(有大括号就是有具体的方法),抽象类可以没有抽象方法,也可以没有具体的 方法 3.一个类中有抽象方法,它肯定是抽象类 接口类: 使用Interface修饰。 接口中的方法都是抽象方法。(可以不加abstract,默认都是abstract方法) 接口不能直接实例化 一个类可以实现接口,必须实现接口中多有的方法。 一个类可以实现多个接口。 抽象类实现接口,可以不重写所有的方法。 接口里不能有具体的方法,抽象类里可以有 继承现在前面,接口写在后面:例子:class Child extends Grapa implemens test,parent 多态:父亲型的引用指向子类型的对象。或者接口类型的引用指向实现了接口的类的对象 接口可以看做特殊的抽象类 多态是个晚绑定,他由运行器决定的,不是由编译器决定的。多态是一种运行期的行为 static:一旦被static修饰,属性都指向同一个内存空间,属性维护同一份此属性 public class April7th_关键字 { public static void main(String[] args) { KeyWord word = new KeyWord(); word.name="zhangsan"; KeyWord word2 = new KeyWord(); System.out.println(word.name); System.out.println(word2.name); } } class KeyWord{ static String name; } 打印为zhangsan zhangsan 被static修饰后就不属于对象了,属于类。哪一个对象对它修改,都会映射到其他对象中。static叫静态变量 静态代码块 static{ } 加载java到JVM 连接 初始化的时候运行 静态代码块 final 包, 导入 数组:一维数组,二维数组 单例模式 冒泡排序