黑马程序员——面向对象(上)

来源:互联网 发布:我的凉山兄弟 知乎 编辑:程序博客网 时间:2024/05/22 23:35

---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------

面向对象


面向对象是一种相对于面向过程的思想,把功能和属性封装到对象里,强调的是具有某种功能或属性的对象。可以简单理解为一个对象就是一事物,对这个事物的操作功能都是属于这个事物本身的

Java中面向对象有三大特性:封装,继承,多态。


·类与对象


好比建筑物的设计图纸与根据这设计图建造出来的建筑物,类和对象的是图纸和建造出来的建筑物的关系。类用来描叙对象的属性和功能,要获得对象就得先有对这对象进行描叙的类。如果任何事物都可以被描叙,那么任何事物都可以被称之为对象吧


·定义类并创建对象


class Cat{    String name;    String color;}Cat cat=new Cat();


 

·抽象类


//用abstract关键字定义一个抽象类,abstract放在类名和方法返回值之前。此类可以有属性和方法,但是因为是抽象类//所以定义的方法可以没有方法体,子类去继承复写,不然不能创建对象abstract Animal{    abstract void sleep();}


·接口类


//对类功能扩展的类//interface关键字定义接口,里面的方法只能是抽象的,默认被public abstract修饰//接口类里面的属性默认被public static final修饰。子类用implements关键字实现接口,复写接口方法interface ExtraSkill{void dance();}


·继承和实现


//继承和实现是类和类之间关系中的两种Cat extends Animal{    public void sleep(){    System.out.println("A cat sleeps with eyes closed");    }}Cat implements ExtraSkill{    public void dance{        System.out.println("My cat can dance");    }}


毕老师还讲到了类和类之间的关系还有聚合和组合的关系,组合好比人的整体和四肢的关系,共存亡,聚合好比你和电脑的关系,使用关系,紧密程度没有组合关系强。


继承中注意:


子类继承实现父类,在复写父类中方法时子类方法权限要大于等于父类中抽象方法的权限,如果父类方法是private的则子类不可继承。

子类不可复写父类中的静态方法,因为静态方法先于对象进入内存,它是用类名来引用而不是对象来引用,况且就算能覆盖也没有意义。

子类不能继承多个父类,但是可以实现多个接口,而且接口可以实现多继承。如果子类中有内部类的话,内部类是可以继承父类的,从而间接地实现多继承。



---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net