Java只能单继承 前提:类与类之间
扩展:
类与接口之间:多实现
接口与接口之间:多继承
原因:如果一个类有两个父类则如果两个父类中有同名方法会导致子类的矛盾
但如果接口继承了多个接口就算有同名方法 但因为是抽象的 没有方法主体 所以没事儿
父类是共性方法向上抽取封装而成是子类的子集(与直觉相反)
注意:与直觉相反的部分
比如可以提取共性方法“动物”为父类
子类有猫狗 驴 猪等
按照通常的理解动物更宽泛范围更大猫狗驴猪更具体范围更小
但实际情况是父类拥有所有子类所共有的一些特性和方法是普适所有子类的
因此在这里 动物范围更小 而猫狗驴猪因为每个子类都有自己的特有属性和方法所以范围反而更大
子类可以覆写父类的方法
提高了代码的复用性
辨析重载与覆写
覆写:
子类权限必须大于父类权限才能覆写
覆写静态的只能是静态
覆写可以改变参数的个数和类型也可以改变方法的类型
重载:
重载也可以改变参数的个数和类型与返回值类型也无关只需要同名
class ExtendsDemo
{
publicstatic void main(String[] args)
{
Fatherf = new Father();
f.show();
Son.show("nimei");
Father.show(5);
}
}
class Father
{
voidshow()
{
System.out.println("卧槽");
}
staticvoid show(int a)
{
System.out.println("卧槽"+a);
}
}
class Son extends Father
{
staticvoid show(String name)
{
System.out.println("卧槽"+name);
}
}