08-单例模式,继承,super和final

08-单例模式,继承,super和final

  • 单例模式: 实例且只实例一个对象 模板只创建一个对象

    两种模式

    1. 懒汉模式 : 特点是节省内存
      1. 饿汉式 : 特点是第一刻就把对象创建好等待着被使用
public class Note7 {
	static Note7 note;      //在内存开辟空间,存储的是		Note7类型变量note
	
	private Note7(){
		
	}
	public static  Note7  note(){
		if(note == null){
			note = new Note7();
		}
		return note;
	}
}
class Note8{
   static Note8 note8 = new Note8();    //在类加载到内存时创建对象. 
  
   private Note8(){
	   
   }
   public static Note8 getNote(){
	return note8;   
   }
}
  • 继承: 当我们想要一个模板,实现多种对象的时候,把代码提取出来放在一个类中,重复代码提取出来的类,我们叫他父类

    1. 父类: (超类,基类) 被继承者
    2. 子类: (派生类) 继承者

    语法:

    public class 子类名 extends 父类名{
        
    }
    

    注意事项:

    1. 一个类只能直接继承一个类,但是可以间接继承其他类
    2. 一个类如果没有明确extends一个类,那么 默认继承Object ,Object是一个类,是所有类的超类

    范围:

    ​ 子类可以继承父类中的所有数据,包括私有数据,但是要间接访问,构造方法不能继承

    好处:

    ​ 代码的重用

  • 方法的重写:

    如果子类和父类有相同的方法,子类的这个方法就叫重写

    重写需要注意的地方:

    1.构成重写的条件:

    ​ 方法的返回值,

    ​ 方法名,

    ​ 参数列表相同,

    ​ 修饰符的范围不能小于父类

    2.私有方法和构造方法不能被重写

    3.静态方法不存在重写,但是可以被继承

public class ExdentTest {
	
	private String name;
	private int age;
	private char gender;
	
public static void main(String[] args) {
	//
	Son son = new Son();
	son.eat();
	}	
}
  • java中的关键子final:

    1. 最终的,是一个修饰符

    注意:

    1. final修饰类 (不可以被继承)
    2. 修饰方法 (不可以被重写)
    3. 修饰变量 (不可以被更改 —也就是所谓的常量)
public final class FinalTest {		//该类不可以被继承
	static final int A = 3;  //常量
	public static void main(String[] args) {
		int a = 5;
		System.out.println(a);
		System.out.println(FinalTest.A);	
	}
}
  • java中的关键字Super:

    1. this: 当前对象,里面存的是当前对象的引用(地址)
    2. super: 当前对象的父类,里面存的是当前对象的父类的引用(地址)

    两种用途有同名成员时,super调用父类

    1. 调用父类中的普通成员(方法和属性),如果父类和子类
    2. 在子类的构造方法中,super可以显示的调用父类的构造,用于传参()

    注意: 1.super在构造方法中只能出现在第一行

    ​ 2.在子类的构造方法中必需含有父类的构造,(没写的话就默认条用,父类没有无参构造会报错)

猜你喜欢

转载自blog.csdn.net/qq_26270869/article/details/90024390