java学习--代码块、继承、super final关键字

一.代码块

 1.局部代码块(想到方法)

   书写位置:方法中

   作用:限制作用域


 2.构造代码块

   书写位置:类中 方法外

   代码的执行顺序:

   1.系统调用的

   2.只要创建对象 就会调用

   3.构造代码块 在构造方法之前被调用

   作用:当你有些方法 需要每一个对象都调用的时候

   可以将这个方法 在构造代码块中调用(不常用)


 3.静态代码块

   使用关键词 static 修饰代码块

   书写位置:类中 方法外

   调用顺序:

   1.随着类的加载而加载

   2.只加载一次

   3.在构造代码块之前执行

   应用场景:

   加载驱动(加载数据库的驱动) 


 4.同步代码块(多线程部分)




二.继承

面向对象的三大特征之一。  

1.继承可以传递;

2.继承的是属性和行为(不是全部继承);

3.建立了类与类之间的关系。

    继承的好处:

    1.减少代码量;

    2.提高工作效率;

    3.增强了类与类之间的关系(让类和类的关系更加紧密)。

    继承的弊端:违反了低耦合(低耦合:希望类与类之间减少联系)

    使用继承一定要符合逻辑

class Animal{
	String name;
	String color;
	//介绍自己的方法
	public void sayHi() {
		System.out.println(name + ""+ color);
	}
}

class Cat extends Animal{
	public void speak(){
		System.out.println("喵喵喵");
	}
}
class Dog extends Animal{
	public void speak(){
		System.out.println("汪汪汪");
	}
}

java中 只允许 但继承(通过接口实现多继承)

java中 还允许 多层继承(继承链)A->B->C

 

当你只使用共有方法和属性 使用哪个类对象?

一般选择 使用继承链 最顶端的类


 当你只使用特有方法和属性 使用哪个类对象?

 一般选择 使用继承链 最末端的类

 

 如果一个没有写继承
 那么这个类 默认继承 Object类(基类)
 继承中的 构造方法

 注意:构造方法是不能继承的

  

  当创建子类对象的时候 为了保证继承的完整性

  不管 在创建子类对象的时候 使用的是 无参的构造方法还是有参)

  系统会默认帮你调用 父类中的 无参构造方法


class Son extends Father{
	public Son() {
		//系统帮你在 构造方法的第一行 写了一句代码
		//如果你不写系统会默认帮你加上
		super();//调用父类的构造方法
		System.out.println("无参");
	}
	public Son(String name) {
		super();//调用父类的构造方法
		System.out.println("有参");
	}
}

三.super关键字


super 和 this

super 在子类中代表是  父类的对象


this 关键字 可以调用子类的属性 和 方法

当子类中没有这个属性 或方法的时候 就去父类中寻找

找到就用 没有找到就报错 


四.重载

方法重载(overload)(在一个类中)

方法的重写(Override)(前提 至少两个类 有继承关系)

作用 相当于 对 父类的该方法 进行升级

跟父类的方法 完全一致


书写一个类 都写什么方法?

有参 无参构造方法 set/get 方法

重写toString方法输出属性

public String toString() {
		//调用的是父类方法
		//打印出来默认 全类名@16进制hashcode码
		return super.toString();
	}




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值