3.12学习心得
2018-03-12 16:31
197 查看
今天我们对抽象类和接口的概念有了初步了解。
1.抽象类:在某些情况下,父类中只知道子类中应该包含什么样的方法,但是无法知道其具体的实现内容。
可以通俗理解为,父类定义了一个方向,让子类定义方法去解决。
2.抽象方法和抽象类都是使用 abstract 修饰的。
如果在一个类中定义了抽象方法,那么这个类就是抽象类;
抽象类是无法实例化的,只能作为父类被继承使用;
抽象类的构造器只能用于被实现的子类的构造器调用。
tips:
abstract 是不能修饰成员变量的;
如果方法定义为 static,就不能使用 abstract 修饰符;
如果方法定义为 private ,也不能使用 abstract 修饰符;
3.抽象类的作用:
抽象类体现的是一种模板模式的设计思想,抽象类作为多个子类的通用模板,子类在抽象的基础上进行扩充,但是子类整体上会保留抽象类的行为方法(必须要实现抽象类的抽象方法);抽象类一般只是定义需要使用的方法,把不能实现的部分抽象成抽象方法,留给子类去实现;父类中可以有实现的方法,但是子类也是可以对已经实现的方法进行改造的(即重写:override),但是如果在子类中还需要调用父类的实现方法,可以使用 super 关键字(上周学习过的super关键字类似this)。
4.接口本质上是一种最彻底的抽象类。如果在一个类中,一个实现的方法都没有,或者都是抽象方法,那么,这样的类,成为接口。接口定义使用 interface 定义。
语法:
接口的命名规范同类的命名规范;
在接口中,成员变量必须是静态的常量,方法必须是抽象方法,所以可以省略相关的修饰符。
5.接口的继承和类的继承不一样,接口支持多继承,同样也使用 extends 关键字,之间用逗号隔开,继承的内容包含了,常量和方法。
语法:Inter3.java
6.
7.
1.抽象类:在某些情况下,父类中只知道子类中应该包含什么样的方法,但是无法知道其具体的实现内容。
可以通俗理解为,父类定义了一个方向,让子类定义方法去解决。
2.抽象方法和抽象类都是使用 abstract 修饰的。
如果在一个类中定义了抽象方法,那么这个类就是抽象类;
抽象类是无法实例化的,只能作为父类被继承使用;
抽象类的构造器只能用于被实现的子类的构造器调用。
tips:
abstract 是不能修饰成员变量的;
如果方法定义为 static,就不能使用 abstract 修饰符;
如果方法定义为 private ,也不能使用 abstract 修饰符;
3.抽象类的作用:
抽象类体现的是一种模板模式的设计思想,抽象类作为多个子类的通用模板,子类在抽象的基础上进行扩充,但是子类整体上会保留抽象类的行为方法(必须要实现抽象类的抽象方法);抽象类一般只是定义需要使用的方法,把不能实现的部分抽象成抽象方法,留给子类去实现;父类中可以有实现的方法,但是子类也是可以对已经实现的方法进行改造的(即重写:override),但是如果在子类中还需要调用父类的实现方法,可以使用 super 关键字(上周学习过的super关键字类似this)。
4.接口本质上是一种最彻底的抽象类。如果在一个类中,一个实现的方法都没有,或者都是抽象方法,那么,这样的类,成为接口。接口定义使用 interface 定义。
语法:
[修饰符] interface 接口名 extends 父接口1, 父接口2... { 0-N 个常量; 0-N个抽象方法; }接口中所有的成员在定义的时候访问控制修饰符只能是 public 或者是 default;
接口的命名规范同类的命名规范;
在接口中,成员变量必须是静态的常量,方法必须是抽象方法,所以可以省略相关的修饰符。
5.接口的继承和类的继承不一样,接口支持多继承,同样也使用 extends 关键字,之间用逗号隔开,继承的内容包含了,常量和方法。
语法:Inter3.java
public interface Inter3 extends Inter1, Inter2{ static String C3 = "c3"; // 常量定义的命名规范是全部大写,两个单词之间用 _ void Inter3fun1(); void Inter3fun2(); }
6.
接口的使用
接口是抽象类一样,是不能被实例化的,但是接口可以用于声明引用类型的变量,当使用接口来声明变量时,该变量的运行时类型必须是该接口的实现类。接口的作用:用于定义实现类的行为规范;定义变量;定义一些常量;被其他类实现。一个类是可以实现多个接口的,使用 implements 关键字,多个接口之间用逗号隔开。、语法:[修饰符:public、final] class 类名 extends 父类 implements 接口1,接口2...{ .... }注意:此处的extends只能继承一个父类,和接口不同!
7.
接口和抽象类
相同点:都不能被实例化,位于继承树的顶端,是用于被其他类继承或者实现的;都可以包含抽象方法,子类都必须要实现抽象方法;在实际的开发中,都是接口先行,一般都是先定义接口,然后开发人员实现接口,完成具体方法的实现;抽象类是个半成品,可以作为一个模板去使用。不同点:抽象类中可以定义普通方法,但是接口中都是抽象方法和静态变量;在抽象类是可以定义静态方法的,接口中不能定义静态方法的;在抽象中可以定义构造器的,但是在接口中是不存在构造器这个概念的;一个类最多只能有一个直接的父类或者抽象类,但是可以有多个接口的实现。相关文章推荐
- Oracle的学习心得
- ROR ! 一些学习心得
- [学习心得][Introduction to ASP.NET Core 1.0]3-2 ASP.NET Core and MVC Pattern
- GO语言高并发学习心得体会
- 与MSSQL对比学习MYSQL的心得(五)--运算符
- hive学习心得二
- HM学习心得--CU分割的认识
- 分布式数据库系统学习心得笔记
- Java并发底层实现原理学习心得
- 我的MYSQL学习心得(推荐)
- 学习笔记-第四周-心得体会
- 新业务学习心得
- jfreechart学习心得(与大家分享)
- 学习ucos和ARM体系结构心得
- shell脚本学习心得
- 学习心得
- django全文搜索学习心得
- 程序渣自学一些心得_读书和学习
- ETL学习心得:探求数据仓库关键环节ETL的本质
- 《鸟哥的Linux私房菜》学习心得(上)