面向对象 中继承的特点

来源:互联网 发布:淘宝优化怎么做 编辑:程序博客网 时间:2024/06/06 03:43
父子继承
父类: 超类 基类


让类与类之间产生关系 子父类关系
格式:
class 子类名 extends 父类名{

}
继承好处:
1.提高了代码的复用性 少写了代码

2.让类与类之间产生关系,有了这个关系 才有了多态 是多态的前提

继承中成员方法的关系
同名:
就近原则
不同名:
直接调用


方法的重写:
子父类出现了一模一样的方法
重写有什么用?
提高了代码的扩展性
当子类需要父类的功能,而功能主体 子类特有的内容时,可以重写父类中的功能
这样 即沿袭了父类的功能 又定义了子类的特有内容
注意事项:
1.父类私有方法 子类不能被重写
2.子类重写父类方法时 访问权限不能更低(大于等于) 否则编译失败
//private < 默认 < public 
权限越来越小 那么继承体系 就崩溃了 




先有父 才有子


类与类之间 有共性的关系 抽取出来的是父类
子类继承父类 必须有关系 
class A{
void demo1(){}
void demo2(){}
}
class B extends A{
void demo1(){}
void demo3(){}
}
继承弊端:
1.类的耦合性增强了
开发的原则: 高内聚低耦合
内聚: 就是自己完成某件事情的能力
耦合: 类与类的关系
java中继承的特点:
1.只能单继承 不支持多继承
一个儿子只能有一个爹 一个爹可以有多个儿子
class A{
void show(){
System.out.println("a");
}
}
class B{
void show(){
System.out.println("a");
}
}
class C extends A,B{

}


C c = new C();

c.show();

1构造函数
     子类构造函数中的第一行默认的,隐式的执行父类的无参构造  super();
     无论子类构造函数有无参数
     类自动继承 Object


      1.1为什么有super?
             子类中会用到父类的属性,所以要先初始化父类
      1.2 当父类中没有无参构造?
             1.在子类中构造第一句 super(x,y);
             2 this在子类的构造函数中 this. 到其他构造函数中传参
             this super只能在第一行 ,只能2选1

原创粉丝点击