面向对象是JAVA语言与其他语言的最大区别,也是JAVA语言最大的特征,它将复杂的问题简单化,从而提高效益,节约成本。
面向对象的的三大特征:继承、多态、封装
继承:
当多个类中存在相同属性和行为时,将这些相同的属性和行为抽取到单独一个类中,这个类是父类。那么再定义属性和行为时只要继承这个父类即可。这个就叫做继承。
继承的注意点:
1、只能单继承,为了弥补这个不足,JAVA中提供了接口(后面会有)
2、子类拥有父类的属性和方法,并且可以在此基础上拓展出自己的方法
3、父类的构造方法不能被继承,子类默认继承父类的无参构造方法,当父类没有无参构造方法时,子类需要使用super来显示的调用父类的构造方法
示例代码:
事物的多种形态:重载和对象的多态,多态我觉得主要是为了日后修改代码方便,便于维护。
多态的特点:
1、代码可以替换
2、扩充方便
3、简化代码
4、但是并不能提高代码运行效率
示例代码:
class A{
method(){
System.out.println("a");}
}
class Bextends A{
method(){
System.out.println("b");
}
}
class test{
Pubic static void main(String[] args){
A test =new B();
test.method();
}
//执行以后输出的是:b。原因是:父类引用(A)指向子类对象(B),这个引用调用的是子类的方法,而不是父类A的方法;
继承实现多态其实原理类似:
interfaceA{
method();
}
class Bimplements A{
method(){
System.out.println();
}
}
class test{
Pubic static void main(String[] args){
A test =new B();
test.method();
}
}
//此处便会使用java的多态,B实现了A,虽然=前面是A test,但实际上生成的确是B的对象,所以调用它的方法,同继承中的父类对象指向子类对象原理相同,只是此处为继承;
封装:
封装是指隐藏对象的属性和方法,只对外提供一个公共的访问方式,举个例子就是电脑主机,对外提供了USB接口,电源开关等等但是机箱内部的原作原理我们不必要知道,这就是封装的原理。
封装特点:
将变化隔离;便于使用;提高重用性;提高安全性。
示例代码: