教你深入理解java面向对象

java面向对象有三大特征

  1. 封装
  2. 继承
  3. 多态

封装

  1. 封装就是将某些东西包装在一起,然后以新的完整形式呈现出来,隐藏属性、方法或实现细节的处理方式,也就是有选择性的公开或隐藏某些信息,解决了数据的安全性。
  2. 封装可以分为封装数据和封装业务,封装业务指的是在类中定义方法,在方法中完成整个业务逻辑。封装数据指将属性私有化,然后提供get(读数据)和set(写数据)方法。
    以代码的形式解释一下
public class Person {
    private String name;//定义为私有成员变量,防止其他类修改
    private int age;
    private String sex;
    public Person(String name,int age,String sex){
        this.name=name;
        this.age=age;
        this.sex=sex;
    }
    public void setName(String n){
    	name=n;
    }
    public String getName(){
    	return name;
    }
    public void setAge(int a){
    	if(a>0&&a<=120){
    		age=a;	
    	}
    	else{
    		System.out.println("年龄数据非法,默认年龄18");
    		age=18;
    	}
    }
    public int getAge(){
    	return age;
    }
    public void setSex(String s){
    	sex=s;
    }
    public String getSex(){
    	return sex;
    }
    public void show(){
    	System.out.println(name+age+sex);
    }
}
/**主方法*/
public class Test {
   public static void main(String[] args){
	   Person p=new Person();
	   p.setName("qq");
	   p.setAge(140);//当年龄超出范围时,就会报错
	   p.setSex("女");
	   System.out.println(p.getName());
	   p.show();

	  
   }
}

继承

子类继承父类的特征和行为,继承只能单向继承,且只能有一个父类

/**父类*/
public class parentClass {
   public parentClass(){
	   System.out.println("父类的构造方法");
   }
   private String name;
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
   public void show(){
	   System.out.println(name);
   }
}
/**子类*/
public class child extends parentClass {
   public child(){
	   System.out.println("子类的构造方法");
	  
   }
}

多态

多态是一种事物的多种形态,一个方法可以被重载,子类可以重写父类的方法,都体现了多态的思想。
在学习多态需要知道两个概念,重写和重载
重载:重载就是在同一个类当中有多个名称相同方法,但各个相同方法的参数列表不同(无关返回值类型)。编译器会根据调用时传递的实际参数自动判断具体调用哪个重载方法。
在这里插入图片描述
在这里插入图片描述
重写:重写则发生在不同的类当中,并且两者要有继承关系,重写是方法名字和参数的列表是要完全一致的,重写的意义在于父类的方法已经不能满足时,子类重写为自己需要的方法,例如宠物类定义了一个看病的方法,而猫和狗看病的方法都不同,所以他们要重新定义自己的方法
在这里插入图片描述
小猫定义了自己看病的方法
在这里插入图片描述
小狗也定义了自己看病的方法
在这里插入图片描述
而多态指的是父类类型的引用指向子类的对象
在这里插入图片描述
父类提供了方法的可见性,而子类才是具体实现方法的类

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值