面向对面的三大特性

1.封装

  a.把类中的一些细节描述隐藏内部,用户只能通过接口来访问类中的内容,这种组织模块的方式叫“封装”。

  b.封装是信息隐藏的一种方式。留给用户访问对象的接口(简称API),内部信息外部不可直接访问。

  c.封装可以通过"private"关键字来实现

  代码示例演示:

  

/**
 * Created by Pres_cheng on 2016/8/24.
 * 演示java的封装与通过接口调用封装的属性
 */
public class Main {

    public static void main(String[] args) {
        //实例化People对象
        People people = new People();
        //通过接口调用People类里封装的name属性
        people.setName("程其春");
        System.out.print(people.getName());
    }
}

/**
 * 定义一个People类
 */
class People {
    //将People类中的名字属性封装
    private String name;

    //定义接口方法
    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

2.继承

  a.为了代码的复用,我们可以将一个类使用另一个类的属性和方法,这样的行为我们称为“继承”。

  b.继承有两种方式:单继承和多继承

    单继承:子类只继承自一个父类

    多继承:一个子类同时继承多个父类

  c.继承通过"extends"关键字来实现

  代码示例演示:

  Main类

  

public class Main {
    public static void main(String[] args) {
        //实例化一个People对象
        People people = new People();
        people.run();

        //实例化一个Men对象
        Men men = new Men();
        //子类继承父类可调用父类的方法和属性
        men.run();
        System.out.println(men.getFatherName());
    }
}

  People类

  

/**
 * Created by Pres_cheng on 2016/8/24.
 * 父类:People类
 */
public class People {
    //定义一个name属性
    public String name = "程其春";
    //定义一个run方法
    public void run(){
        System.out.println("People run");
    }

}

  Men类

  

/**
 * Created by Pres_cheng on 2016/8/24.
 * 子类:Men类继承父类People
 */
public class Men extends People {

    @Override
    public void run() {
        //super.run();
        System.out.println("men run");
    }
    //定义接口方法
    public String getFatherName(){
        return name;
    }
}

3.多态

  a.什么是多态? 通俗的讲“类的不同对象对同一消息做出不同的反应”。例如:水在不同状态下会有固态、液态、气态三种状态

  b.为什么引入多态的概念?让程序运行起来更灵活

  c.多态分两种:静态多态和动态多态 

  静态多态是编译时多态:方法重载

  动态多态是运行时多态:方法重写和接口的引用

  代码示例演示:

  Main类

  

public class Main {
    public static void main(String[] args) {
        Car car = new Car();
        car.run();
        //多态性 实例化motorcycle对象
        Car motorcycle = new Motorcycle();
        motorcycle.run();
        //实例化bicycle对象
        Car bicycle = new Bicycle();
        bicycle.run();
    }
}

  Car类

  

public class Car {
    public void run(){
        System.out.println("car run");
    }
}

  Motorcycle类

  

public class Motorcycle extends Car {
    @Override
    public void run() {
        System.out.println("motorcycle run");
    }
}

  Bicycle类

  

public class Bicycle extends Car {
    @Override
    public void run() {
        System.out.println("bicycle run");
    }
}
原文地址:https://www.cnblogs.com/prescheng/p/5804800.html