面向对象--interface

2016-10-10  本文已影响0人  关先生的IT博客

接口

java只支持单继承,例如猪是食物,猪还是动物,我要完成这个多继承的关系, 只时候,我们需要用到接口


public interface Runner { public static final int id = 1; public void start() ; //接口中不用谢abstract,但是都是方法. public void run() ; public void stop(); }//为什么要定义成public static final?C++中多继承关系中存在多个父类对象中的相同的成员变量,容易出现问题,java中要去避免这种情况,放到static中.


接口特性


接口举例


interface Singer { public void sing(); public void sleep(); } //定义一个能唱歌的东西,不同种类的不确定,所以用抽象 class Student implements Singer { //因为以上用的是interface,不能extends private String name; Student(String name) { this.name = name ; } public void study() { System.out.println("studying"); } public String getName() (return name;) public void sing() { System.out.println("student is singing"); } public void sleep() { System.out.println("student is sleeping"); } } //存在继承关系,存在重写,如果在存在父类对子类对象的应用,则为多态.


interface Singer { public void sing(); public void sleep(); } //定义一个能唱歌的东西,不同种类的不确定,所以用抽象 interface Painter { public void paint(); public void eat(); } class Student implements Singer { //因为以上用的是interface,不能extends private String name; Student(String name) { this.name = name ;} public void study () {System.out.println("studying"):} public String getName() (return name;) public void sing() { System.out.println("student is singing"); } public void sleep() { System.out.println("student is sleeping"); }
class Teacher implements Singer,Painter{}
//所有的方法要全部实现,重写.
存在多态关系的时候,所有方法的重写在code segment里,而字符串变量和静态变量储存在data segment里面.实现动态引用(为一个函数指针C++);
这个部分可以看作多态的延伸.
每个接口对应的是部分的方法.
f(singer s) {
s.sing();
} //注意这个时候这个方法,无论是调用student 还是tercher,都可以.但是要重写这个方法.多态的实现.所以接口是那个抽象的类,多重继承,也没有C++的毛病.


使用接口我们实现了多继承性,实现多继承性,打好多态的基础.无论属性再多,永远要记得,继承性.重写,按部就班.

Interface Comparable

compareto 比较对象的大小.输出一个返回值.
我先定义一个方法,实现这个接口之后比较所有的大小,无视类型,排序,扩展性.

上一篇 下一篇

猜你喜欢

热点阅读