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

本篇博主要详细介绍的是面向对象的三大特性:继承、封装、多态的作用、语法及特点。

文章目录

目录

一、继承

1.继承的作用

2.继承的语法

3.继承的特点

4.练习:创建一个圆类,属性半径,求周长,求面积,创建一个圆柱类,属性高,求体积,求表面积

二、封装

1.封装概念

2.练习:把宠物猫的属性都设置为私有属性为所有属性添加getter/setter方法,创建宠物猫的对象,为宠物猫设置姓名,性别,品种,体重。打印宠物猫的姓名,性别,品种,体重。

3.练习:创建一个桌子类,该类中有名称、重量、宽度、长度和高度等私有属性,对属性实现封装,以及以下几个方法:b、double mianji(),计算桌面的面积c、void zhiCheng(),支撑物品

三、多态

总结


一、继承

1.继承的作用

  子类可以继承父类的属性(全局变量)和行为(普通方法)。

2.继承的语法

在声明子类时需要在类名后 加extends 父类名

public class Student extends Person

}

3.继承的特点

1.子类拥有父类所能继承的所有属性和方法,并且子类还可以有自己的属性和方法

2.子类可以自己将父类的行为进行改变

3.一个父类可以有多个子类,一个子类只能有一个父类

4.一个子类可以有多层父类

5.所有的类都是继承于Object类(万事万物皆为对象),Object-基类。

6.当父类拥有有参构造方法时,子类必须拥有自己的子类构造方法,并且在代码第一行使用super关键字调用父类的有参构造,将父类的参数传递进去

4.练习:创建一个圆类,属性半径,求周长,求面积,创建一个圆柱类,属性高,求体积,求表面积

public class Circle {
	double r;
	public Circle(int r) {
		this.r=r;
	}
	public double getLength() {
		double c=2*Math.PI*r;
		return c;
	}
	public double getA() {
		double s=Math.PI*r*r;
		return s;
	}
}
public class Column extends Circle{
	double h;
	public Column(int r,int h) {
		super(r);
		// TODO Auto-generated constructor stub
		this.h=h;
	}
	public double getArea() {
		return getLength()*h+2*getA();
	}
	public double getVolumn() {
		return getA()*h;
	}
}
public class Test_circle {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Column circle = new Column(10,20);
		System.out.println(circle.getArea());
		System.out.println(circle.getVolumn());
	}
}

二、封装

1.封装概念

  类是方法和属性的封装,方法是语句的封装,将所有的属性用private进行修饰,将属性用get和set方法控制对其的访问和修改。

2.练习:把宠物猫的属性都设置为私有属性为所有属性添加getter/setter方法,创建宠物猫的对象,为宠物猫设置姓名,性别,品种,体重。打印宠物猫的姓名,性别,品种,体重。

public class Cat {
	private String name;
	private String sex;
	private String brand;
	private double height;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getBrand() {
		return brand;
	}
	public void setBrand(String brand) {
		this.brand = brand;
	}
	public double getHeight() {
		return height;
	}
	public void setHeight(double height) {
		this.height = height;
	}
	
}
public class Test4 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Cat cat =new Cat();
		cat.setName("Tom");
		System.out.println(cat.getName());
		cat.setBrand("蓝猫");
		System.out.println(cat.getBrand());
		cat.setSex("男");
		System.out.println(cat.getSex());
		cat.setHeight(23);
		System.out.println(cat.getHeight());
	}
}

3.练习:创建一个桌子类,该类中有名称、重量、宽度、长度和高度等私有属性,对属性实现封装,以及以下几个方法:b、double mianji(),计算桌面的面积c、void zhiCheng(),支撑物品

public class Table {
	private String name;
	private double height;
	private double width;
	private double weight;
	private double length;
	
	public double getLength() {
		return length;
	}
	public void setLength(double length) {
		this.length = length;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public double getHeight() {
		return height;
	}
	public void setHeight(double height) {
		this.height = height;
	}
	public double getWidth() {
		return width;
	}
	public void setWidth(double width) {
		this.width = width;
	}
	public double getWeight() {
		return weight;
	}
	public void setWeight(double weight) {
		this.weight = weight;
	}
	public double mianji() {
		return length*width;
	}
	public void zhicheng(String sth) {
		System.out.println("桌子支撑"+sth);
	}
}

public class Test5 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Table t1=new Table();
		t1.setWidth(2);
		t1.setLength(8);
		System.out.println("面积为"+t1.mianji());
		t1.zhicheng("果盘");
	}
}

三、多态

一种状态多种表现形式,父引用指向子类对象

Shape shape = new Circle();

shape = new Triangle();


总结

   本人学疏才浅,如有错误,还望见谅。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值