初学者的笔记
初学者的笔记面向对象编程
javaOOP 面向对象编程
java中万物皆对象
继承:子类继承父类,拥有父类的属性和方法。
public class Animal {
public String name;
public String sex;
}
class Dog extends Animal{
}
Dog dog = new Dog();
特点:
1,继承父类的属性和方法
2,不能继承父类的
private 修饰的属性和方法
父类的构造方法
子类和父类不在同一包下,使用默认的访问修饰符
3,java中的类只有单继承,一个子类只有一个父类。但是可以多重继承
4,一个类如果没有extends继承,默认继承Object。Object是所有类的父类
5,父类又叫超类,基类。子类又叫派生类。
2,方法的重写
当父类的方法满足不了子类的需求,这个时候需要子类重写父类的方法
特点:方法名和父类的方法名一致,返回值类型一致,参数列表一致,
子类方法的访问权限不能比父类的更严格。
子类的返回值可以是父类返回值对象的子类对象
public float eat(int a){
}
public int eat(int b){
}
万物皆对象
基本数据类型 不是面向对象的,但是提供了八种包装类型。
int Integer
double Double
float Float
char Character
3,super关键字
super:表示对父类对象的引用
super(); 调用父类的无参构造 必须写在构造方法中的第一行
super只能出现在子类的方法和构造方法中
super调用构造方法时,只能是第一句
super不能访问父类的private成员
初学者的笔记多态
多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术。
- 我们在程序中定义的引用变量所指向的具体类型和通过该引用变量的方法调用在编程的时候并不确定,当处于运行期间才确定。就是这个引用变量究竟指向哪一个实例对象,在编译期间是不确定的,只有运行期才能确定,这样不用修改源码就可以把变量绑定到不同的类实例上,让程序拥有了多个运行状态,这就是多态。
说人话:
允许将子类类型的指针赋值给父类类型的指针,把不同的子类对象都当作父类来看。比如你家有亲属结婚了, 让你们家派个人来参加婚礼,邀请函写的是让你爸来,但是实际上你去了,或者你妹妹去了,这都是可以的, 因为你们代表的是你爸,但是在你们去之前他们也不知道谁会去,只知道是你们家的人。可能是你爸爸,可能 是你们家的其他人代表你爸参加。这就是多态。
多态又分为 编译时多态和运行时多态。
编译时多态:比如重载
运行时多态:比如重写
重载式多态,也叫编译时多态。也就是说这种多态再编译时已经确定好了。重载大家都知道,方法名相同而参数列表不同的一组方法就是重载。在调用这种重载的方法时,通过传入不同的参数最后得到不同的结果。
重写式多态,也叫运行时多态。这种多态通过动态绑定(dynamic binding)技术来实现,是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。也就是说,只有程序运行起来,你才知道调用的是哪个子类的方法。 这种多态通过函数的重写以及向上转型来实现。
2,多态的使用
形成多态的必要条件
1,要有关系–继承
2,要有方法重写–重写式多态
3,要有向上转型–父类的引用指向子类的对象