一、继承相关问题
1.继承了什么?
子类实际上继承了父类所有的东西,只不过调用被限制
- public 整个项目
- private 本类之内可以调用
- protected 其子类可调用(即,只有子类可以调用,无需考虑是否同包)
- 缺省的、不写 同一个包下可调用
或者也可以说
- 同包下: 只有 私有的不能调用
- 不同包下:
子类中 ,public protected 可以调用
非子类中,子类对象只能调用 public
2.其他问题
- 不止类之间能继承,接口之间也可以
- 实现类是必须重写接口中所有的方法,但是类与类的继承不需要
- (实现类)子类以及子类对象会优先调用重写之后的方法
- 父类参数在子类重写时不能改
- 静态方法只能调用静态资源
二、封装相关问题
三、接口相关问题
public class Door {
//上层的类只需要写一个开锁的方法,参数为接口,方法体为接口的开锁方法
public void useLock(LockInterface lock){
lock.open();
}
}
public interface LockInterface {
void open();//接口,只有空方法没有具体实现
}
class PwdLock implements LockInterface{
//接口的具体实现
void open(){
system.out.print("密码开锁");
}
}
class MainClass{
//这里的main方法再实际项目中是业务类,业务类课以调用任意的接口实现类
public static void main(String[] args) {
Door door = new Door();
PwdLock pwdLock = new PwdLock();
door.useLock(pwdLock);
}
}
四、五大原则
1.单一职责原则
一个类的功能要单一,不要把太多代码与方法都写在一个类中。
2.开放封闭原则
- 扩展开放
单继承、多接口、方法精良都放在接口里 - 修改封闭
对重要 私密 的属性 方法进行私有化
3.里氏替换原则 - 自动转型
如果一个地方需要的类型是父类类型的时候,这个父类的所有子类对象又可以替代父类
子类应当替换父类出现在父类可能出现的任何位置上
4.依赖倒置原则
具体(类) 依赖抽象(接口) 具体不依赖具体 抽象不依赖具体
5.接口分离原则
接口功能尽量单一
eg.LockInterface open close、OpenInterface open、LoginInterface login
接口 可以在 不同类之间实现组合