Java中接口interface和实现implements问题
2012-12-05 17:21
405 查看
接口体中之宝含常量定义和方法声明两部分,并且默认都为public
接口实现为类定义,如果该类没有全部实现了接口的所有函数,则此类必须为abstract类,不能实例化对象
经过验证还发现,类似于继承,接口实现中也存在类中新添加的成员变量对接口的同名覆盖,将会加以证明。
形式:
interface Name
{
public final DataType data1 = 常数1;
......
public final DataType datan = 常数n;
public ReturnType FuncName1(Paras....);
......
public ReturnType FuncNamen(Paras....);
}
class One implements Name
{
//实现所有方法
//codes
}
abstract Two implements Name //不可实例化对象
{
//至少有一个方法没实现
//codes
}
eg.
//桌面 interface1 2 3
//接口,只含常量和函数声明
interface Charge
{
public final int max = 10; //如果不加访问修饰符,默认为public
public void Pay();
public int Func();
}
//实现接口
class Car implements Charge
{
protected int min;
protected int max; //和interface常量中同名的变量
public Car(int min, int max)
{
this.min = min; //成员
this.max = max; //经证明会发生同名覆盖
}
//实现接口中函数1
public void Pay()
{
System.out.println("class Car" + " " + max);
}
//实现接口中函数2
public int Func()
{
//codes
return -1;
}
//新增函数
public void Show()
{
//该max为本类中的max,因为覆盖了接口中的max
System.out.println("min = " + min + " max = " + max );
}
}
class Bus implements Charge
{
public void Pay()
{
System.out.println("class Bus");
}
public int Func()
{
return 0;
}
//新增函数
public void Show()
{
System.out.println("max = " + max );//该max为interface中常量max
}
}
//该类只实现了接口两个函数中的其中一个,因此该类为abstract类,不能实例化对象
abstract class Taxi implements Charge
{
public void Pay()
{
System.out.println("class Taxi");
}
//新增函数,由于本类为抽象类,所以无法实例化对象,也就无法调用次函数
public void Show()
{
System.out.println("max = " + max );
}
}
public class Sixth
{
public static void main(String args[])
{
Car car = new Car(100, 200);
car.Pay();
car.Show();
Bus bus = new Bus();
bus.Pay();
bus.Show();
//不能用Taxi类实例化对象
}
}
运行结果
接口实现为类定义,如果该类没有全部实现了接口的所有函数,则此类必须为abstract类,不能实例化对象
经过验证还发现,类似于继承,接口实现中也存在类中新添加的成员变量对接口的同名覆盖,将会加以证明。
形式:
interface Name
{
public final DataType data1 = 常数1;
......
public final DataType datan = 常数n;
public ReturnType FuncName1(Paras....);
......
public ReturnType FuncNamen(Paras....);
}
class One implements Name
{
//实现所有方法
//codes
}
abstract Two implements Name //不可实例化对象
{
//至少有一个方法没实现
//codes
}
eg.
//桌面 interface1 2 3
//接口,只含常量和函数声明
interface Charge
{
public final int max = 10; //如果不加访问修饰符,默认为public
public void Pay();
public int Func();
}
//实现接口
class Car implements Charge
{
protected int min;
protected int max; //和interface常量中同名的变量
public Car(int min, int max)
{
this.min = min; //成员
this.max = max; //经证明会发生同名覆盖
}
//实现接口中函数1
public void Pay()
{
System.out.println("class Car" + " " + max);
}
//实现接口中函数2
public int Func()
{
//codes
return -1;
}
//新增函数
public void Show()
{
//该max为本类中的max,因为覆盖了接口中的max
System.out.println("min = " + min + " max = " + max );
}
}
class Bus implements Charge
{
public void Pay()
{
System.out.println("class Bus");
}
public int Func()
{
return 0;
}
//新增函数
public void Show()
{
System.out.println("max = " + max );//该max为interface中常量max
}
}
//该类只实现了接口两个函数中的其中一个,因此该类为abstract类,不能实例化对象
abstract class Taxi implements Charge
{
public void Pay()
{
System.out.println("class Taxi");
}
//新增函数,由于本类为抽象类,所以无法实例化对象,也就无法调用次函数
public void Show()
{
System.out.println("max = " + max );
}
}
public class Sixth
{
public static void main(String args[])
{
Car car = new Car(100, 200);
car.Pay();
car.Show();
Bus bus = new Bus();
bus.Pay();
bus.Show();
//不能用Taxi类实例化对象
}
}
运行结果
相关文章推荐
- 【Java面试题】13 Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
- JAVA 构造器, extends[继承], implements[实现], Interface[接口], reflect[反射], clone[克隆], final, static, abstrac
- Java 学习笔记 (3) -抽象类 abstract 接口 interface 内部类 inner class 继承 extends 实现 implements 包 package
- Java的接口Interface和接口实现Implentmens的理解
- java在使用实现了List接口时候应该注意的问题
- Java中的接口interface实现、与继承extends机制。
- JAVA中implements实现多接口
- Static Nested Class 和 Inner Class的不同。Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
- 【Java】接口interface的一些问题
- java 接口实现简单并能说明问题的例子
- Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
- java基础问题---什么是java序列化,如何实现java序列化?或者请解释Serializable接口的作用。
- 黑马程序员 java基础 实现runnable接口问题 学习日志
- 今天的问题:一个简单的例子,请帮我解开“接口实现Java‘隐藏实现细目’”的迷惑。
- Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
- Java 学习笔记--解决一个类实现多个接口的问题
- java基础13 接口(及关键字:interface、implements)
- java中的继承问题,类B继承A,那么构造方法需要这样写吗?这不是重复吗?还有接口与抽象类怎么实现?
- Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
- 从头认识java-13.15 使用泛型时出现的问题(2)-实现参数化接口与重载