类、接口、抽象类
接口和抽象类可以看成一种特-殊的类,但它们都需要类来实现,且不能创建对象,它们都丰富了类的继承;
一.类: 类与接口和抽象类的最大不同是可以通过构造函数创建对象。且用子类的构造函数创建对象时
父类的无参构造函数优先被掉用了,所以子类创建的对象能继承父类中的方法。
二.接口:1.声明一个接口 public interface 接口名{ }
2.接口中只能定义常量public final static 数据类型 常量名 (final说明是不能改变的,static说明该
常量在内存中只有一份,并且能够通过接口名.常量名直接调用不需要通过对象来调用它们)和
抽象方法 public 返回类型 函数名(数据类型 参数名,...);(注意是以分号结束,并且没有{}
号,接口中的方法默认都是Public型的。
3.接口要靠类来实现 public class 类名 implements 接口名,...{ } (可以把接口看做是实现类的
父类,并且一个类可以实现(继承)多个接口),在实现接口的类中必须要把接口和接口的父类中的
所有方法都实现。在实现类中我们就可以通过自动转型来创建一个接口型的对象:
接口名 对象 = new 类名(),但这个对象不能调用类中的函数,只能调用接口中的函数,这和
类之间的自动转型一样,子类转化为父类后不能调用子类中定义的方法。
4.接口也可以继承接口,并且一个接口可以继承多个接口 public class 类名 extends 接口名,...{ }
5.如果一个类要同时继承一个类和接口,这必须先继承类再继承接口 public class 类名 extends
类名 implements 接口名 (个人猜想可能父类中可能会实现了接口中的某个方法,若先继承接口
则父类中的那个方法会被重写,这纯属我的猜测)
6.接口中的方法都是抽象方法,因此可以省略abstract.
三.抽象类:1.声明一个抽象类 public abstract class 类名{ }
2.抽象类是介于接口和类之间的定义,它可以实现接口的所有功能。它能定义所有类和接口中的
内容(构造函数除外),但它申明抽象函数时和接口有点不同,他需要在函数前加上abstract,
public abstract 返回类型 函数名();
3.抽象类可以继承类和接口,也可以被类继承(一个类只能继承一个抽象类这和接口的
implements不同)
4.一个继承了接口类的抽象函数,接口中的的函数可以在抽象类中实现,也可以放到抽象类的子
类中实现。
5.我们会发现接口中定义了很多方法,但通常我们只需要用到其中的某个方法,如果我们直接
继承这个接口,其他方法也必须写一遍,写成一个空方法,说一我们可以弄一个抽象类实现
口中的所有方法(空方法),这样我们的子类就只要重写需要用到的方法。
总结:
接口和抽象类都不能实例化对象。
接口的优点:接口可以被多继承;设计和实现完全分离;更自然的是用多态;更容易搭建程序框架;更容易更换实现;
接口的理解:接口是一种约定,一个类实现一个接口就必须实现该接口中的所有抽象方法,这些方法可以看成是一个约定;
有些接口只有一个名字,里面什么都没有,这样的接口叫做标记接口
接口与其实现类的关系是ia-like-a
继承中父类与子类体现的关系式is-a
因为接口可以进行多重继承:
优点:对象可以调用多个基类中的接口。多种功能,加快任务实现。
缺点:易产生二义性和钻石型继承问题。多重性格,易得精神分裂。
以上如果有错误的地方希望大家指出!!
相关推荐
抽象类与接口 抽象类与接口 抽象类与接口 抽象类与接口
java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例...
Java中的类、抽象类和接口的区别和联系
Java抽象类与接口实验报告
1.继承及继承实例 2.方法重写(Overwrite) 3.super关键字 4.方法重载(Overload) 5.final修饰符 6.abstract修饰符 7.抽象类 8.接口 9.接口和抽象类对比 10.接口和抽象类使用场合实例 11.总结
抽象类和接口的区别 在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持...
(3) 抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类 (4) 具体派生类必须覆盖基类的抽象方法 (5) 抽象派生类可以覆盖基类的抽象方法,也可以不覆盖。如果不覆盖,...
抽象类和接口实验报告
1. 设计并使用抽象类; 2.学习如何定义接口,掌握接口的实现方式,使用实现了接口的类; 3.理解接口与抽象类的区别。
c#中抽象类和接口。 相同点: (1) 都可以被继承 (2) 都不能被实例化 (3) 都可以包含方法声明 (4) 派生类必须实现未实现的方法 区 别: (1) 抽象基类可以定义字段、属性、方法实现。接口只能定义属性、索引器、事件、...
学习java的抽象类和接口,入门抽象类和接口必须学会这些内容
主要介绍接口与抽象类的区别,为那些困惑的人指点迷津。
C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例 C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例
Java 接口和抽象类
抽象类和接口的区别 【概述】 一个软件设计的好坏,我想很大程度上取决于它的整体架构, 而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时, 你底层的具体实现...
此书对于你学习Java抽象类和接口有非常大的帮助
在Java语言中,abstract class和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,...
抽象类和接口 区别分析抽象类和接口 区别分析
JAVA 继承基本类、抽象类、接口区别与联系
本项目主要包括项目开发环境搭建、不同功能的类的设计、抽象类的设计、接口的设计、及其继承抽象类重写和接口实现类等具体功能的实现。 ●工程项目搭建与游戏初始化功能实现(2学时) ; ●动物城成员列表与动物信息...