黑马程序员_学习日记第7天——接口、抽象类
来源:互联网 发布:linux arp 广播 编辑:程序博客网 时间:2024/06/10 10:09
---------------------- ASP.Net+Android+IOS开发、href="http://edu.csdn.net"target="blank">.Net培训、期待与您交流! ----------------------
1、抽象类
当多个类中出现相同功能,但是功能主体不同,这时可以进行向上抽取,这时,只抽取功能定义,而不抽取功能主体。
抽象类的特点:
1)抽象方法一定在抽象类中;
2)抽象方法和抽象类都必须被abstract关键字修饰;
3)抽象类不可以用new创建对象,因为调用抽象方法没有意义;
4)抽象类中的抽象方法要被使用,必须由子类复写所有的抽象方法后建立子类对象调用,如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
2、抽象类和一般类没有太大的不同,该如何描述事物就如何描述事物,只不过该事物出现了一些看不懂的东西,这些不确定的部分,也是该事物的功能,需要明确出现,但是无法定义主体。通过抽象方法来表示。
抽象类比一般类多了抽象函数,就是在类中可以定义抽象方法。抽象 类不可以实例化。
特殊:抽象类中可以不定义抽象方法,这样做仅仅是不让建立对象。
3、模板方法模式
在定义功能时,功能的一部分是确定的,但是有一部分是不确定,而确定的部分在使用不确定的部分,那么这时就将不确定的部分暴露出去,由该类的子类去完成。
- abstract class GetTime {
- public final void getTime() {
- long start = System.currentTimeMillis();
- runcode();
- long end = System.currentTimeMillis();
- System.out.println("毫秒:"+(end-start));
- }
- public abstract void runcode();
- }
4、接口
初期理解,可以认为是一个特殊的抽象类,当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示
class用于定义类,interface用于定义接口。
接口定义时,格式特点:
1)接口中常见定义:常量,抽象方法;
2)接口中的成员都有固定的修饰符:常量:public static final 方法:public abstract 修饰符均可省略,但不建议省去。
接口中的成员都是public的
接口是不可以创建对象的,因为有抽象方法,需要被子类实现,子类对接口中的抽象方法全部都覆盖后,子类才可以实例化,否则子类是一个抽象类。
5、接口可以被类多实现,也是对多继承不支持的转换形式,java支持多实现。
接口与接口间的关系是继承,同时,接口间可以多继承,但要注意相同方法间的返回值类型必须一致。
----------------------ASP.Net+Android+IOS开发、href="http://edu.csdn.net"target="blank">.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
- 黑马程序员_学习日记第7天——继承、接口、抽象类
- 黑马程序员_学习日记第7天——接口、抽象类
- 黑马程序员_学习日记36_531基础加强(抽象类、接口实现多态)
- 黑马程序员——学习日记8 java抽象类与接口
- 黑马程序员_学习日记24_面向对象技术高级应用(接口、抽象类与抽象方法、密封类与密封方法)
- 黑马程序员_抽象类和接口
- 黑马程序员_抽象类合接口
- 黑马程序员_抽象类和接口
- 黑马程序员_抽象类与接口
- 黑马程序员_抽象类与接口
- 黑马程序员_抽象类、接口
- 黑马程序员_接口和抽象类
- 黑马程序员_抽象类和接口
- 黑马程序员_抽象类与接口
- 黑马程序员_抽象类与接口
- 黑马程序员_日记4_Java继承,抽象类和接口
- 黑马程序员——第7天——(面向对象)继承,final关键字,抽象类,接口
- 黑马程序员——抽象类&接口
- 装了win8 之后QQ音乐跟酷狗乐库都显示不出来的问题
- 关于建站的小小建议
- “舌尖2”中300多道美食亮相 扬州菜就占了20多道
- c++-引用
- jQuery实现牛逼的打飞机游戏
- 黑马程序员_学习日记第7天——接口、抽象类
- Booking System<贪心>
- zk zk studio
- 【动态规划】单调递增最长子序列
- eclipse中最常用的快捷键
- 【KMP&字符串匹配】Implement strStr()
- saturate_cast的作用
- ECLIPSE 构建MAVEN
- VS2008 f:/dd/vctools/vc7libs/ship/atlmfc/src/mfc/winctrl1.cpp 错误代码