Java基础笔记-抽象,继承,多态
2015-05-19 17:28
381 查看
抽象类: abstract修饰
抽象方法必须定义在抽象类中,抽象类不能创建对象.
在抽象方法中可以不定义抽象方法,作用是:让该类不能建立对象.
特点是:
1.定义在抽象类中
2.方法和类都用abstract修饰,在抽象类中的方法不写abstract也默认的是抽象方法.
3.不能用new来创建对象,调用抽象方法没意义.
4.抽象类中的方法被使用,必须由子类覆写其所有的抽象方法后,才能建立子类对象进行调用.
如果子类只覆盖了部分的抽象方法.那么该子类还是一个抽象类.
5.抽象类不可以被实例化.
继承:(extends)
关键字:extends,一般用于类与类之间的所属关系.java中是单继承,多实现(implements).
让类与类之间产生关系,从而才有了多态的特性.
当两个类有了继承关系以后.就可以在子类中调用父类的方法和属性,一般使用 super 关键字.
其用法和this关键字类似.super调用的是父类的,而this是调用的方法本身的.
View Code
多态中成员的特点:
1.成员函数的特点; 在编译时,参阅引用型变量所属的类中是否有调用方法,有的话编译会通过,没有的话会编译失败
在运行时,参阅对象所属的类中属否有调用方法.
面试中可能遇见的问题.问调用显示结果.
成员函数(非静态的)在多态调用时,编译看左边,运行看右边.
静态函数,无论编译还是运行,都看左边
看了一下之前写的那篇笔记,感觉都没什么能写的了,不知道写些什么,越往后学感觉都是得理解的,越学越难的说,最近又没什么状态,只好慢慢来,慢慢学习了.
抽象方法必须定义在抽象类中,抽象类不能创建对象.
在抽象方法中可以不定义抽象方法,作用是:让该类不能建立对象.
特点是:
1.定义在抽象类中
2.方法和类都用abstract修饰,在抽象类中的方法不写abstract也默认的是抽象方法.
3.不能用new来创建对象,调用抽象方法没意义.
4.抽象类中的方法被使用,必须由子类覆写其所有的抽象方法后,才能建立子类对象进行调用.
如果子类只覆盖了部分的抽象方法.那么该子类还是一个抽象类.
5.抽象类不可以被实例化.
继承:(extends)
关键字:extends,一般用于类与类之间的所属关系.java中是单继承,多实现(implements).
让类与类之间产生关系,从而才有了多态的特性.
当两个类有了继承关系以后.就可以在子类中调用父类的方法和属性,一般使用 super 关键字.
其用法和this关键字类似.super调用的是父类的,而this是调用的方法本身的.
/* 练习: 基础班学生:学习,睡觉. 高级班学生:学习,睡觉. */ abstract class Student { public abstract void study(); public void sleep() { System.out.println("躺着睡."); } } class DoStudent { public void doSomething(Student stu) { stu.study(); stu.sleep(); } } class BaseStudent extends Student { public void study() { System.out.println("base study"); } public void sleep() { System.out.println("站着睡"); } } class AdvStudent extends Student { public void study() { System.out.println("adv study"); } } class DuoTaiTest { public static void main(String args[]) { /* BaseStudent bs = new BaseStudent(); bs.study(); bs.sleep(); AdvStudent as = new AdvStudent(); as.study(); as.sleep(); */ DoStudent ds = new DoStudent(); ds.doSomething(new BaseStudent()); ds.doSomething(new AdvStudent()); } }
View Code
多态中成员的特点:
1.成员函数的特点; 在编译时,参阅引用型变量所属的类中是否有调用方法,有的话编译会通过,没有的话会编译失败
在运行时,参阅对象所属的类中属否有调用方法.
面试中可能遇见的问题.问调用显示结果.
成员函数(非静态的)在多态调用时,编译看左边,运行看右边.
静态函数,无论编译还是运行,都看左边
看了一下之前写的那篇笔记,感觉都没什么能写的了,不知道写些什么,越往后学感觉都是得理解的,越学越难的说,最近又没什么状态,只好慢慢来,慢慢学习了.
相关文章推荐
- Java 基础一些代码练习笔记(继承+接口+多态)
- 【Java学习笔记】基础知识学习10【继承与多态】
- java基础知识2--抽象 多态,继承等
- Java基础笔记二继承、异常、多态
- Java基础笔记 – 面向对象三个特征 继承、封装、多态及编程细节提示
- Java基础-->面向对象<继承,内部类,多态,包,抽象与接口>
- 黑马程序员 ——Java基础之继承、抽象、接口、多态
- 04_java基础_继承、抽象、多态
- Java基础-四大特性理解(抽象、封装、继承、多态)
- 黑马程序员<java基础<面向对象(封装,继承,多态,抽象)>>
- 黑马程序员——Java基础:继承、final关键字、抽象、接口、多态
- 黑马程序员——Java基础--继承、多态、抽象、接口联合使用的案例
- java基础——java的三大基本特征(继承、抽象、多态)
- 黑马程序员——Java基础---继承,抽象,多态,接口,包,内部类
- 黑马程序员—————Java基础----继承、多态、抽象、接口
- Java基础:继承、多态、抽象、接口
- 黑马程序员--Java基础学习笔记【继承、多态】
- Java基础笔记-继承、抽象类、接口、多态、内部类、异常
- Java基础笔记-继承、抽象类、接口、多态、内部类、异常
- Java基础 对封装、继承、多态、抽象的理解