黑马程序员技术交流社区

标题: JavaEE之面向对象 [打印本页]

作者: 淡看小人生    时间: 2018-4-7 21:21
标题: JavaEE之面向对象
成员变量:在类中,方法外,有初始化值(默认值);
变量:在方法中,必须先赋值再使用;

成员方法:没有static修饰;

构造方法:没有static修饰,也没有返回值类型;(给成员变量初始化赋值)

继承(extends):public class 子类名 extends 父类名{}
提高了代码复用性,维护性,让类与类之间产生关系(多态的前提)
单继承,多层继承;

继承中成员变量特点:(就近原则)
        1.在方法局部找2.在子类成员找3.在父类成员找。
super和this很像this指本类,super指父类;
子类中所有的构造方法默认都会访问父类中空参构造方法(每一个构造方法第一句都是super());
继承中成员方法特点:1.在子类找2.在父类找
override(方法重写):子类出现和父类一样的方法声明的时候(既保证了父类的功能,有添加了子类的特点)
注意:1.父类私有不能被重写2.子类重写父类,访问权限不能更低(最好一样);

多态:1.有继承关系。2.有方法重写3,有父类引用指向子类对象;
多态中成员的访问特点:
        A:成员变量:编译看左边,执行看左边;
        B:成员方法:编译看左边,执行看右边;
多态中访问子类特有功能:(转型)
        A:向上转型(从子到父):父类引用指向子类对象  Animal a=new Cat();

        B:向下转型(从父到子):父类引用转为子类对象 Cat c=(Cat)a;

final:是一个关键字,表示最终的意思。可以用来修饰类,修饰变量,修饰方法。
修饰类:表明该类是最终类,不能被继承
修饰变量:表明该变量是常量,不能再次被赋值
修饰方法:表明该方法是最终方法,不能被重写

static它是静态修饰符,一般用来修饰类中的成员。
静态的特点:        1.被类的所有对象共享
                2.可以通过类名调用
                3.优先于对象存在
                4.随着类的加载而加载
静态成员方法中不能出现this,super这样的关键字。


抽象类的特点:
                A:抽象类和抽象方法必须使用abstract关键字修饰
                  B:抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
                  C:抽象类不能实例化
                          抽象类如何实例化呢?
                          参照多态的方式,通过子类对象实例化。
                       
                        //创建对象
                     //Animal a = new Animal();
                     //按照多态的形式实例化抽象类
                     Animal a = new Cat();
                        a.eat();
                        a.sleep();


                  D:抽象类的子类
                          要么重写抽象类中的所有抽象方法
                        要么是抽象类

抽象类的成员特点:
                成员变量:
                        有成员变量,成员变量可以是变量,也可以是常量。
                构造方法:
                        有构造方法。
                        抽象类中构造方法的作用?
                                用于子类访问父类数据的初始化。
                成员方法:
                        有成员方法,成员方法可以是抽象的,也可以是非抽象的。
                        抽象方法:限定子类必须完成某些动作
                        非抽象方法:提高代码的复用性


接口的特点:
                  A:定义接口使用的是interface关键字
                  B:类和接口之间是实现关系,用implements关键字表示
                  C:接口不能实例化
                          接口有没有其他的方式实例化呢?
                        参照多态的形式使用实现类来实例化。
                  D:接口的实现类
                          要么重写接口中的所有的抽象方法
                        要么是一个抽象类

  多态的几种形式:
                  具体类多态(几乎不用)
                  抽象类多态(常用)
                  接口多态(最常用)

接口的成员特点:
                成员变量:
                          有成员变量,而且变量只能是常量。
                          默认修饰符:public static final
                  构造方法:
                          没有构造方法。
                  成员方法:
                          有成员方法,而且都是抽象的。
                          默认修饰符:public abstract
类与类:
                  继承关系,只能单继承,可以多层继承。

  类与接口:
                  实现关系,可以单实现,也可以多实现。
                  还可以在继承一个类的同时实现多个接口。

  接口与接口:
                  继承关系,可以单继承,也可以多继承。

抽象类与接口的区别:
成员区别
抽象类  变量,常量;有抽象方法;抽象方法,非抽象方法
接口  常量;抽象方法
关系区别:
类与类 继承,单继承
类与接口 实现,单实现,多实现
接口与接口 继承,单继承,多继承
设计理念区别:
抽象类 被继承体现的是:”is a”的关系。共性功能
接口 被实现体现的是:”like a”的关系。扩展功能


作者: 小浙姐姐    时间: 2018-4-10 17:49





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2