继承

来源:互联网 发布:mmd动作数据百度网盘 编辑:程序博客网 时间:2024/05/22 10:33

继承

继承: 在我们多个类存在相同的属性和方法的时候,可以将相同的部分,抽取出来,封装成一个类.这多个类如果再使用这些属性和方法的时候,就可以继承抽取出来的封装的类.这就是继承带来的好处

      

       继承:其实描述的是类与类的一种关系,形成了父类与子类的一种关系

 

       格式:

               子类  extends父类 {}

水果类{ fruit  //父类

       Sting 颜色

       int 数量

       food (){}

 

}

 

苹果 { apple   //子类

       String 颜色

       int 数量

       食物(){

 

       美白(){

       }

}

 

西瓜{ watermelon   //子类 

       String 颜色;

       int 数量;

       食物(){}

       解暑(){}

}

 

 

 

想要访问父类中的成员 :使用到 super关键字 

       this: 当前对象

       super : 表示父类存储空间的引用   (理解为父类对象)

 

注意事项:

       1.父类私有的儿子也不能用

       2.构造方法儿子也不能用,想用的话,使用 super(),直接调用父类的无参构造 

 

好处和弊端

设计原则: 高内聚 ,低耦合 

       内聚:自己能干的事儿不求别人 

       耦合:类和类之间有关系, 但是不要太强.

 

 

构造方法的关系:

       在子类创建对象的时候,子类的构造方法会默认的访问父类的无参的构造方法,

       因为子类想要使用父类的属性,那么属性必须的初始化,否则无法使用.

 

父类成员变量私有:

              子类无法通过构造方法赋值

       解决:调用父类的有参构造方法 ,可以访问到父类中的私有成员

 

成员方法的关系

              子类和父类的成员方法不同名的时候,该怎么调用就怎么调用.

 

              子类和父类的成员方法重名的时候,用子类 !!!

 

       方法的重写:

              子类和父类的方法声明,一模一样,包括(修饰符  参数列表返回值类型 )也就覆盖

 

       重载:

              本类中方法名相同,参数列表不同,与返回值类型无关.

 

OverrideOverload的区别?

 

       Override:重写,子类和父类一模一样的方法,子类覆盖父类的方法

       Overload:重载,本类中,方法名一样,参数列表不同的方法,跟返回值类型无关

 

final引入:

              修饰的成员方法,该成员方法不能被覆盖

             

      

       概述:

              final是最终的意思

 

       注意:

              1. ,不能被继承 

              2.修饰变量的时候,变量变成了常量,无法被重新赋值

                     常量:字面值常量

                              自定义常量 --final修饰之后 ,变量变成自定义常量

 

              3.方法,不能被重写 

 

       总结:final 修饰的东西不能被更改 ,它是最终

 

 

 

 

 

 

0 0
原创粉丝点击