黑马程序员技术交流社区
标题:
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