Java基础第八讲

一、代码块


1.局部代码块


   在方法内部.限定变量的周期,更早的释放,从而提高内存的利用率.


2.构造代码块


   在类类的里面,方法的外面.多个构造方法中相同的代码存放在一起,每次调用构造都执行,并且在构造方法前执行.


3.静态代码块


   1)在类中,方法外.被static修饰.


   2)用于对类进行初始化,在类加载的同时执行,只执行一次.


二、继承


1.继承的好处


   1)提高代码的被复用性


   2)提高代码的维护性


   3)使类和类之间产生关系.


2.继承的弊端


   增强了类的耦合性.如果子类改变,父类也会受到影响.


3.继承的特性


   1)Java中只支持单继承,不支持多继承.如果支持多继承的话,有相同名字的方法,调用时,会有差异.


   2)Java支持多层继承.类1继承类2,类2继承类3.


   3)如果需要用某个体系的所有功能,需要对最底层的类创建对象.


   4)如果想看某个体系的功能,最顶层的即可.


4.继承中的注意事项


   1)子类只能继承父类中所有的成员方法和成员变量.


   2)子类不能继承父类的构造方法,但可以通过super关键字来访问父类的构造方法.


   3)不要为了部分的功能使用继承.适用于某个类是另一个类的一种.如:香蕉是水果的一种.


   4)子类初始化前,要先完成父类数据的初始化,因为子类会继承或使用父类中的数据.


三、super关键字


1.作用


   1)调用父类的成员变量.


   2)调用父类的构造方法.


   3)调用父类的成员方法.


2.注意事项


   1)super或this必须出现在第一条语句上,如没有,系统会默认一个super.


四、方法重写(Override)和方法重载(Overload)


1.方法重写


1)应用


   当子类需要父类的功能时,而功能主体子类有自己特有的内容时,可以重写父类中的方法.这样即演戏了父类的功能,又定义了子类特有的内容.


2)注意事项


   父类中的私有方法不能被重写.因为父类私有方法子类不能继承.


   子类重写父类方法时,访问权限不能低于父类,最好一致.(public)


   父类的静态方法,子类也必须通过静态方法进行重写.


   子类重写父类方法时,声明最好一样.


3)方法重写与方法重载的区别


   方法重写是子类的方法覆盖父类的方法,所以方法名和参数要相同.


   重载是在类中有同名的方法,但参数列表不同,与返回值无关.


 

class TestAnimal {
	public static void main(String[] args) {
		Cat c = new Cat("蓝色",4);
		c.catchMouse();
	}
}


class Animal{


	private String color;
	private int legs;


	public Animal(){}


	public Animal(String color,int legs){
		this.color = color;
		this.legs = legs;
	}


	public void setColor(String color){
		this.color = color;
	}


	public String getColor(){
		return color;
	}


	public void setLegs(int legs){
		this.legs = legs;
	}


	public int getLegs(){
		return legs;
	}


	
}


class Cat extends Animal {
	public Cat(){}
	public Cat(String color,int legs){
		super(color,legs);
	}
	public void catchMouse(){
		System.out.println(getLegs() + "条腿" + getColor() + "颜色的猫" + "可以抓老鼠");
	}
}


class Dog extends Animal {
	public void lookHome(){
		System.out.println("我是" + getColor() + "的狗" + "我有" + getLegs() + "条腿" + "我可以看家");
	}
}


五、final关键字


1.作用


   可以用来修饰类,变量,方法.


2.特点


   1)如果修饰了类,则类不可以被继承.


   2)如果修饰变量,修饰的变量如果是基本数据类型,则其值不能被改变.修饰的如果是引用数据类型,则其储存的地址不能被改变.

class Demo3_Final {
	public static void main(String[] args) {
		Demo d = new Demo();
		d.print();
	}
}


class Demo {
	final int NUM ;						
	
	public void print() {
		NUM = 20;
		System.out.println(NUM);
	}
}




   3)如果修饰方法,方法不能被重写.
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值