java笔记之重写,抽象

                                                     数组的复制

Java中数组

复制是通过静态函数 copyOf(type[] original,int lentgh)实现的

数组的填充

实现了数组部分或全部空间的填充,Java提供了一种方法两种形式

Fill(type[] a,type b)表示吧a的全部空间填充为b

Fill(type[] a,int key1,int key2,type b)表示把akey1key2的全部空间填充为b,但不包括key2的位置

 

                                                      方法的重写:

1、在继承中也存在着重写的概念,其实就是子类定义了和父类同名的方法

2、定义:方法名称相同,返回值类型相同,参数也相同。

3、重写限制

被子类重写的方法不能拥有比父类更加严格的访问权限

4、private<default<public

三者访问权限的作用域:

Private只能在本类中访问

Default同一个包下都可以访问

Public 同一个工程下面都可以访问

 

Super关键字

强行调用父类的方法执行

Super不一定在重写中使用,也可以表示那些方法是从父类继承下来的

 

重写(overriding)与重载(overloading)的区别

1、重载:方法名称相同,但参数的类型和个数不同

   重写:方法名称,参数类型和返回值类型全部相同

   2、重载权限没有要求,重写被子类重写的方法不能拥有比父类更加严格的访问权限

3、位置:重载在一个类中

重写在继承中才有、

 

                                                   Final 关键字


1、final关键字在Java中被称为完结器,表示最终的意思

2、Final声明类,函数,变量

   Final声明的类不能被继承

   Final声明的函数不能被重写

Final 声明的变量变成常量,常量是不能被修改的

final修饰的变量规定都用大写


                                                           抽象类


1、抽象类的概念:包含一个抽象方法的类叫做抽象类

2、抽象方法:声明而未被实现的函数,抽象方法必须使用abstract关键字声明。

3、抽象类被子类继承,子类必须重写抽象类的所有方法

4、定义格式:

Abstract class className{

属性

方法

抽象方法

}

5、抽象类不能直接实例化,只能通过子类进行实例化

package fanil;

abstract class people{
	private int age;
	private String name;
	public int English;
	public int math;
	public void tell(String name,int age){
		this.age = age;
		this.name = name;
		System.out.println("我的姓名:"+this.name+"年龄:"+this.age);
	}
	
	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getEnglish() {
		return English;
	}

	public void setEnglish(int english) {
		English = english;
	}

	public int getMath() {
		return math;
	}

	public void setMath(int math) {
		this.math = math;
	}

	public abstract void show();
}

class student extends people {

	public void tell(String name,int age){
		super.tell(name, age);   //函数重写,实际上对父类函数功能进行了扩展
		English = getEnglish();
		math    = getMath();
		System.out.println("我英语成绩:"+English+"数学成绩:"+math);
	}
	
	public void show(){//抽象方法在子类实例化
		System.out.println("我总成绩:"+(English+math));
	}
}

public class fanildemo {

	public static void main(String[] args) {
		//people peo = new people();//错的,因为抽象类不能被实例化
		student stu = new student();
		stu.setEnglish(99);
		stu.setEnglish(100);
		stu.tell("张三", 20);
		stu.show();

	}

}

接口:

1、接口是Java中最重要的概念,接口可以理解为一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成

2、接口的格式:

Interface interfaceName{

全局常量;

抽象方法;;

}

3、接口的实现也必须通过子类,使用关键字implements,而且接口是可以多实现的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值