1、接口
接口中的访问权限,只能是public或者default;
接口中的属性默认是常量,即默认有public final static 修饰;
接口中的方法默认是抽象方法,即默认有public abstract 修饰;由于接口里都是抽象的方法,因此接口无法实例化;
接口需要被继承、实现的,实现派生类、实现类,继承的派生类需要重写方法,注意方法的权限一定是public;
类可以实现(implement)多个接口(多个接口用逗号“,”隔开),若有继承父类时,先写继承语句,再写实现语句;
注意继承与实现的关系,只有同类之间时继承(接口可以继承接口),不同类之间是实现(类实现接口);
接口的设计规则:部分类需要实现共有的抽象方法放入接口;
/** 接口的演示 */
public class InterfaceDemo {
public static void main(String[] args) {
//Inter5 o1 = new Inter5(); //编译错误,接口不能被实例化
Inter5 o2 = new Doo(); //向上造型
Inter4 o3 = new Doo(); //向上造型
}
}
//演示接口继承接口
interface Inter4{
void show();
}
interface Inter5 extends Inter4{
void test();
}
class Doo implements Inter5{
public void test(){}
public void show(){}
}
//演示接口的多实现
interface Inter2{
void show();
}
interface Inter3{
void test();
}
abstract class Boo{
abstract void say();
}
class Coo extends Boo implements Inter2,Inter3{
public void show(){}
public void test(){}
void say(){}
}
//演示接口的实现
interface Inter1{
void show(); //默认访问权限为public的
void test();
}
class Aoo implements Inter1{
public void show(){} //重写接口中的抽象方法时,必须加public权限
public void test(){}
}
//演示接口的语法
interface Inter{
//接口中成员的访问权限,默认就是public的,也只能是public的
public static final int NUM = 5;
public abstract void show();
int COUNT = 5; //默认public static final
void test(); //默认public abstract
//int number; //编译错误,常量必须声明同时初始化
//void say(){ } //编译错误,抽象方法不能有方法体
}
2、面向对象三大特征
2.1、封装
类:封装对象的属性与行为;
方法:封装的是具体的业务逻辑功能实现;
封装权限修饰符:封装的是具体的访问权限;
2.2、继承
它的最大作用是代码复用,减少代码量;
超类:所有派生类共有的属性与行为;(Object类是所有类的父类)
接口:部分派生类共有的属性与行为;
派生类:派生类所特有的属性与行为;
继承特征:单一继承(多接口实现),具有传递性;
2.3、多态
多态特性
对象的多继承:实现多个接口,对象为该接口的实现类;
不同类型指向同一个对象时,能有不同的功能-----所有的对象都是多态的--------向上造型实现;
同一类型指向不同的对象,能有不同的实现-------所有抽象方法都是做多态--------方法的重写实现;
强制转换
某对象向上造型后,能做的功能相对与原来的类来说一般会减少,因此有时会要做强制转换,强制转换有两个必要条件:
1)引用所指向的对象,就是要目标类型;
2)引用所指向的对象,实现了目标类型的接口或继承了该类;