类与接口

类与接口的关系: 实现关系 接口在类中允许多实现;多个接口之间用逗号个开

接口是一个特殊类

一个非抽象类是实现了的接口:必须实现接口中的所有方法

一个抽象类实现接口:可以不实现接口中的方法,但是竭诚与它的类就必须实现接口中的方法。

一个接口可以继承多个接口

接口与接口的关系:

接口与接口存在继承关系,一个接口存在多个继承

多态: 一个类对象具有多种表现形态(父类的引用类型变量指向子类的对象)

多态条件:

1.必须存在继承

2.必须要有方法的重写

注意: 子父类存在同名的成员变量 ,默认访问父类中的成员

1. 多态情况下子父类存在同名的非静态方法,访问的是子类的非静态方法

2.多态情况下子父类存在同名的静态方法,访问的是父类的静态方法

3.多态情况下:不能访问子类特有的成员变量

总结: 多态情况下子父类如果存在同一个成员,访问的都是父类,除了同名的非静态方法访问子类(Java编译器的编译原理所致。)

编译看左边,运行不一定看右边

编译看左边:java编译器在编译的时候会检测引用类型中是否含有指定成员,如果没有就会报错。

多态的使用场景:

1.多态可以做形式参数,可以让方法接收更多的返回类型。

2.多态用于返回值类型,可以返回多种数据类型。

注意:

不能用子类去接收返回值(父类),若要用子类接收返回值则要强制转换。

多态的另一种表现形式:

接口的引用类型指向实现类。(多态的另一种表现形式)

实现关系下的多态:

接口(接口不能够创建对象) 变量 =  new  接口实现对象

内部类: 一个类中可以定义另外一个类。

内部类的文件名: 外部类名$符号链接内部类名。

内部类分两种:

1.成员内部类:

如何访问成员内部类:

1.在外部类中定义一个方法,然后通过内部类对象,再通过对象进行访问。

2.直接在其他类中直接创建内部对象然后通过对象访问

格式:  外部类.内部类 变量名 = new 外部类().new 内部类();

内部类使用的注意点:

1.如果外部类和内部类存在同名的成员变量,在内部类中java虚拟机默认访问内部类中的成员变量,若要访问外部类就必须用 外部类.this。

2.如果内部类中的成员变量被private修饰了,这个时候就只能方式一来修饰

3.如果内部类中有静态便量static修饰那么这个类也必须是静态的。

好处:

内部类可以直接外部类的所有成员。

一般什么时候使用内部类:

我们在描述一个A对象,发现A对象中有需要有一个对象B很复杂,B对象又要访问A中的数据,这时用内部类来描述B对象就很方便。

2.局部内部类:

在类的方法中定义的类,这样的一个类叫局部内部类。

局部内部类只能通过第一种方式来访问。

注意:

1.局部内部类访问了方法中的局部变量,方法中的局部变量用final来修饰。

匿名内部类:

没有类的类就叫匿名内部类。

好处:  简化书写

匿名内部类只是没有名字,其他的和普通类没有区别。

使用前提:

1.外部类必须有继承或实现关系。

时间: 2024-07-30 12:46:44

类与接口的相关文章

JAVA-抽象类和接口的区别总结

首先.抽象类和接口都很好的提供了一种将实现和接口分离的方法.. 一.抽象类 我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的.如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样的类我们称它为抽象类.比如new Animal(),我们都知道这个是产生一个动物Animal对象,但是这个Animal具体长成什么样子我们并不知道,它没有一个具体动物的概念,所以他就是一个抽象类,需要一个具体的动物,如狗.猫来对它进

数据结构-List接口-LinkedList类-Set接口-HashSet类-Collection总结

一.数据结构:4种--<需补充> 1.堆栈结构:     特点:LIFO(后进先出);栈的入口/出口都在顶端位置;压栈就是存元素/弹栈就是取元素;     代表类:Stack;     其它:main方法最后一个出去; 2.数组结构:     特点:一片连续的空间;有索引,查找快;增删慢;     代表类:ArrayList;     应用场景:用于查询多的场景,如天气预报; 3.队列结构:     特点:FIFO(先进先出);入口/出口在两侧;     代表:Queue接口     应用场景

Java语言程序设计 上机实验4 掌握声明接口、一个类实现接口的声明和使用方法

Java语言程序设计 上机实验4 实验目的: 理解接口的作用,理解接口和实现接口的类的关系,掌握声明接口.一个类实现接口的声明和使用方法:熟悉Java语言包和实用包中的常用类. 实验内容:(*)为选做 声明圆柱体类Cylinder,继承椭圆类Ellipse(实现周长Perimeter接口和面积Area接口),为圆柱体类设计较为全面的构造方法,并实现体积Volume接口,计算表面积和体积. 将Java的若干关键字(15个以上)保存在一个字符串数组中,对其按升序排列,再采用顺序查找和二分法查找,判断

【总结】Effective java经验之谈,类与接口

转载请注明出处:http://blog.csdn.NET/supera_li/article/details/44940563 Effective Java系列 1.Effective java经验之谈,创建和销毁对象 2.Effective java经验之谈,泛型 3.Effective java经验之谈,类与接口 4.Effective java经验之谈,通用方法 5.Effective java经验之谈,枚举,注解,方法,通用设计,异常 6.Effective java经验之谈,并发编程

类,抽象基类,接口类三者间的区别与联系(C++)

联系很明显,三个都是‘类’,如果读者对类的概念不清楚,可以参照wid的博文http://www.cnblogs.com/mr-wid/archive/2013/02/18/2916309.html. 下面着重解释一下区别,但此文仅是个人理解,如果觉得我说的不对的地方,还请赐教. (1)结构上的区别: 普通类:数据+方法+实现 抽象类:数据+方法(一定包含虚方法n>=1)+部分方法的实现 接口类:方法(纯虚方法) (2)概念上的区别: 普通的类和另外两个的区别很明显,普通类就是猫狗之类的,而抽象类

ledisdb:支持类redis接口的嵌入式nosql

前言 java中的反射的底层实现是,在jvm的Classloader获得全限定名来创建Class. 正文 获得反射类型对象 1.类名.class 不执行静态快 2..Class<?> getClass() Returns the runtime class of this Object. 3.static Class<?> forName(String className) Returns the Class object associated with the class or

类与接口的关系

1. 接口与接口之间可以相互继承: 2. 类与类之间可以相互继承: 3. 类与接口之间,只能是类来实现接口: 4. 继承已经具有父类的方法,子类可以不重写父类方法:类在实现接口的时候,必须重写接口所有的方法. 5. Demo interface Valuable { public double getMoney(); } interface Protectable { public void beProtectable(); } interface A extends Protectable {

类和接口

类和接口 本篇将介绍TypeScript里的类和接口. 与其他强类型语言类似,TypeScript遵循ECMAScript 2015标准,支持class类型,同时也增加支持interface类型. 一.类(class) 下面是一个类的基本定义方式: 1 class User { 2 name: string; 3 constructor(_name: string) { 4 this.name = _name; 5 } 6 7 sayHello(): string { 8 return `Hel

类、接口、实现之间的关系

类可以看成是一个个抽象的对象的宏观描述,例如:人, 类的成员分为字段和方法 程序中的字段对应:人的嘴.有脸 程序中的方法对应:人能干活.说话 程序中的对象对应:张三.李四(是造物者已经实实在在造出的人) 实现类.接口类.调用之间的关系是什么呢?我们可以用我们生活中插座来举例子 程序中的接口对应:三线插座接口.二线插座接口,其中三线插座接口的标准都是一样的,即都有同样的功能:例如:三线插座接口外部有三个孔(字段).能够通电(方法) 程序中的实现对应:不同三线接口的实现可以是不一样的.例如:三个孔的

一步一步搭建开发框架(三)基类基接口

1,AdoNetDal和EfDal都实现IDal这个接口,公共的方法写到接口中,接口中的代码! 1 namespace PCITC.OA.IDal 2 { 3 public interface IUserInforDal 4 { 5 UserInfor Add(UserInfor userInfor); 6 7 bool Update(UserInfor userInfor); 8 9 bool Delete(UserInfor userInfor); 10 11 int Delete(para