冒泡排序、继承、抽象类、方法重载

冒泡排序

冒泡排序是一种比较简单的排序算法,它循环走过需要排序的元素,依次比较相邻的两个元素,如果顺序错误就交换,直至没有元素交换,完成排序。

算法简介:

   1.比较相邻的元素,前一个比后一个大(或者前一个比后一个小)调换位置

   2.每一对相邻的元素进行重复的工作,从开始对一直到结尾对,这步完成后,结尾为做大或最小的数.

   3.针对除了最后一个元素重复进行上面的步骤。

   4.重复1-3步骤直到完成排序

动图演示:

在这里插入图片描述
代码实现:

int[] arr = {11,7,23,15,12,56,29};
		//要比较的轮数
		for(int x=0;x<arr.length-1;x++) {//每次要比较两个数,当前的数和后一个数,当比到最后一个的时候(当前),就不存下一个
			//控制次数
			for(int y=0;y<arr.length-1-x;y++) {
				//如果当前的值比后一个值大
				if(arr[y]>arr[y+1]) {
					//两两比较互换位置
					int temp = arr[y];
					//将后一个值覆盖前一个下标对应的值
					arr[y] = arr[y+1];
					arr[y+1] = temp;
				}
			}
		}
		//遍历排序后的数组
		for(int i=0;i<arr.length;i++) {
			System.out.println(arr[i]);
		}

在这里插入图片描述

继承

继承 :
就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。

好处
提高代码的复用性
类与类之间产生了关系

继承的格式
通过extends关键字,可以声明一个子类继承另外一个父类,定义格式如下:

	class 父类 {
		 ... 
	}
	class 子类 extends 父类 {
		 ....
	}

代码实现:

/**
 * 定义员工类Employee,做为父类
 * 
 */
public class Employee {
	String name; // 定义name属性
	
	// 定义员工的工作方法
	public void work() {
		System.out.println("尽心尽力地工作");
	}
}

/** 
 * 定义讲师类Teacher 继承 员工类Employee 
 * 
 */
class Teacher extends Employee { 
	// 定义一个打印name的方法
	public void printName() {
		System.out.println("name=" + name);
	}
}

/**
 * 定义测试类
 *
 */
public class ExtendDemo01 {
	public static void main(String[] args) { 
		// 创建一个讲师类对象 
		Teacher t = new Teacher(); 
		
		// 为该员工类的name属性进行赋值 
		t.name = "小明"; 
		
		// 调用该员工的printName()方法 
		t.printName(); // name = 小明 
		
		// 调用Teacher类继承来的work()方法
		t.work(); // 尽心尽力地工作
	}
}

在这里插入图片描述
super关键字:
super代表当前的父类对象,在子类中使用super可以调用父类的方法,属性和构造方法。

  1. 调用父类中的构造方法。
  2. 在子类中调用父类被覆盖的方法和属性。

抽象类

抽象方法,是指没有方法体的方法,同时抽象方法还必须使用关键字abstract做修饰。

而拥有抽象方法的类就是抽象类,抽象类要使用abstract关键字声明。

abstract class A{//定义一个抽象类
	
	public void fun(){//普通方法
		System.out.println("存在方法体的方法");
	}
	
	public abstract void print();//抽象方法,没有方法体,有abstract关键字做修饰
	
}

方法重载

方法重载:
在同一个类中,方法名相同,参数列表不同(参数位置、参数个数、参数类型),与返回值类型无关
方法重写:
在继承或实现的关系下,方法名相同,参数列表相同,返回值类型相同,子类的修饰符权限要大于或等于父类中的修饰符权限

方法重写的注意事项:

  •  1.父类中私有的方法不能被重写。
    
  •  	父类私有的方法不能被继承。
    
  •  2.子类重写父类的方法时,访问权限不能更低,最好保持一致。
    

什么情况下需要重写父类中的功能呢?

  • 当子类有自己的特殊实现形式时,此时就可以重写父类中的功能,如果没有特殊实现就不需要重写(此时的重写不是必须的)
class Phone{
	public void call(String name){
		System.out.println("给"+name+"打电话");
	}
}

class NewPhone extends Phone{
	public void call(String name){
//		System.out.println("给"+name+"打电话");
		super.call(name);
		System.out.println("可以听天气预报...");
	}
}

public class ExtendsDemo2 {

	public static void main(String[] args) {
		NewPhone np = new NewPhone();
		np.call("宝宝");
	}
	
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值