精华内容
下载资源
问答
  • 面向对象三大特性

    2019-10-08 17:19:55
    面向对象三大特性 -- 笔记面向对象三大特性封装继承多态 面向对象三大特性 面向对象三大特性:封装、继承、多态 封装 封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来...

    面向对象三大特性

    	面向对象三大特性:封装、继承、多态
    

    封装

    封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问

    封装的好处

    1. 隐藏类的实现细节;
    2. 只能通过规定方法访问数据;
    3. 方便加入控制语句;
    4. 方便修改实现;

    封装的步骤

    1. 修改属性可见性 – 设为private
    	public class pet {
    		// 创建属性并修改可见性
    		private String name;
    		private int age;
    	}
    
    1. 创建get/set方法 – 用于属性读写
    	// 创建get方法
    	public String getName() {
    		return name;
    	}
    	// 创建set方法
    	public void setName(String name) {
    		this.name = name;
    	}
    
    1. 在get/set方法中加入控制语句 – 对属性进行合法判断
    	public void setAge(int age) {
    		// 加入控制语句
    		if(age > 0 && age < 100){
    			this.age = age;
    		}
    	}
    

    继承(is-a)

    继承:使用继承可以优化代码,将重复代码抽取到父类当中,减少代码量,方便修改代码

    使用继承

    1. 编写父类
    class pet {
    	//公共属性和方法
    }
    
    1. 编写子类,继承父类
    class dog extends pet {
    	//子类特有的属性和方法
    }
    
    class cat extends pet {
    	//子类特有的属性和方法
    }
    

    继承的特性

    • 单根性
      只能继承一个类,不能多重继承

    • 传递性
      从父类继承来的元素,可以被子类继承

    子类访问父类成员

    使用super关键字

    • 访问父类构造方法
    	//构造器
    	public dog() {
    		// 访问父类构造方法
    		// super();
    		super("二哈",2);
    	}
    
    • 访问父类构造属性
    	super.name;
    
    • 访问父类方法
    	super.print();
    

    不可被继承的资源

    • 不可继承被私有化的属性和方法
    • 构造方法

    多态

    多态:指一个行为,拥有多种不同表现形式。 例:小明拥有人类形态同时拥有学生形态

    优点: 可扩展性强

    使用多态实现思路

    1. 编写父类
    	class Pet {
    		//吃东西
    		public void eat(){		
    		}
    	}
    
    1. 编写子类,子类重写父类方法
    	class Dog extends Pet {
    		//重写父类方法
    		public void eat(){
    			System.out.println("吃骨头");
    		}
    	}
    
    1. 运行时,使用父类类型,子类对象
    	class cat extends Pet {
    		//向上自然转型
    		Pet pet = new Dog();
    	}
    

    何时使用多态

    1.当父类为方法参数
    2.当父类作为方法返回值

    只能调用父类有的方法
    例:

    创建父类并添加方法

    public class Father {
    	public void eat(){
    	}
    }
    

    创建子类重写父类方法并添加独有方法

    public class Son extends Father{
    	public void eat(){
    		System.out.println("吃饭");
    	}
    	
    	public void play(){
    		System.out.println("玩");
    	}
    }
    

    使用多态调用方法

    public class Main {
    	public static void main(String[] args) {
    		Father father = new Son();
    		father.eat();
    		//报错
    		father.play();
    	}
    }
    

    编译看左边,运行看右边

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,326
精华内容 4,930
关键字:

面向对象三大特性