接口:
为什么要写成public static final int id = 1; ?
这是为了修正C++中多继承时容易出现的问题,当多继承的多个父类之间若有相同的成员变量,继承起来会很麻烦,并容易产生运行时异常。所以在java中把成员变量定义成static类型的,则该成员变量不属于任何对象,即便多个接口存在相同的成员变量也没关系。public static final int id = 1;可以直接写成int id = 1;即写不写static final 都是静态常量。
在接口中定义的方法都是抽象方法,但是不需要加abstract关键字。
举例
父类引用指向子类对象,父类引用只能看到子类对象中从父类继承过来的部分方法。
Student类只从Singer类中继承了sing(),sleep()方法,所以s1对象只能看到sing(),sleep()方法
如果将s2强制转款成Painter类p1,则p1只能看到从Painter类中继承的paint()、eat()方法,看不到sing(),sleep()方法。
类和类之间只能继承、接口和接口之间只能继承、类和接口之间只能实现接口。
子类实现接口中的方法必须遵循的原则:两同两小一大原则
方法名相同,参数类型相同
子类返回类型小于等于父类方法返回类型,
子类抛出异常小于等于父类方法抛出异常,
子类访问权限大于等于父类方法访问权限。
面向对象的总结:
博客引用马士兵Java基础教程中的PPT,如有侵权,请联系删除,谢谢!