【JAVA知识点之面向对象五】

1.代码块的概述和分类

A.代码块概述

     在JAVA中,使用{ }括起来的代码被称为代码块

B.代码块分类

    根据其位置和声明的bu't不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块

C.常见代码块的应用

  •      a.局部代码块

             在方法中出现;限定变量生命周期,及早释放,搞定内存利用率

  •       b.构造代码块(初始化块)

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

  •       c.静态代码块

           在类中方法外出现,加了static修饰,用于gei给类进行初始化,在加载的时候就执行,并只执行一次

           一般用于加载驱动        

2.继承

A.继承(extends)

    让类与类之间产生关系:父子类关系

B.继承案例演示


public class Extends {

	public static void main(String[] args) {
		Cat c=new Cat();
		c.color="bai";
		c.leg=4;
		c.sleep();
		c.eat();

	}

}
class Animal{
	
	String color;
	int leg;
	
	public void eat() {
		System.out.println("吃饭");
	}
	public void sleep() {
		System.out.println("睡觉");
	}
}


class Cat extends Animal{
	/*String color;
	int leg;
	
	public void eat() {
		System.out.println("吃饭");
	}
	public void sleep() {
		System.out.println("睡觉");
	}*/
}
class dog extends Animal{
	/*String color;
	int leg;
	
	public void eat() {
		System.out.println("吃饭");
	}
	public void sleep() {
		System.out.println("睡觉");
	}*/
}
	

C.继承的好处和弊端

     好处:

  •              提高代码的复用性和维护性
  •              让类与类之间产生了关系 是多态的前提

     弊端:

  •              类的耦合性增强

    D.类的继承的特点

          JAVA只支持单继承,不支持多继承(因为有安全隐患)

          JAVA支持多层继承

public class ji {

	public static void main(String[] args) {
		
		DemoC C=new DemoC();
		C.show();
	   }
	}




class DemoA{
	
	public void show() {
		System.out.println("huhu");
	}

class DemoB extends DemoA{
	
	public void print() {
		System.out.println(" jiji");
	}

class DemoC extends DemoB{
	
	public void show() {
		System.out.println(" xiix");
	}
}


	

E.继承的注意事项

  • 子类只能继承父类所有非私有的成员(成员变量和成员方法)
  • 子类不能不能继承父类的构造方法,但是可以通过super关键字去访问父类的构造方法
  • 不要为了部分功能而去继承
  • 子父类出现同名变量 采用就近原则

F. this和super的区别和应用应用

    this和super代表什么

           this:当前对象的引用,谁来调用我,我就代表谁

           super:当前对象父类的引用

    使用区别:

        1.调用成员变量

            this.成员变量 调用本类的成员变量,也可以调用父类的成员变量

            super.成员变量 调用父类的成员变量

        2.调用构造方法

           this(...)调用本类的构造方法    

           super(....)调用父类的构造方法

       3.调用成员方法      

            this.成员方法 调用本类的成员方法,也可以调用父类的成员方法

            super.成员方法 调用父类的成员方法

G. 继承中构造方法的关系

     子类中所有的构造方法默认都会访问父类中空参数的制造方法,因为子类会继承父类中的数据,可能hai还会使用父类的数据。所以子类在初始化前,一定要先完成父类数据的初始化

H. 方法重写概述

重写:当子父类出现了一模一样的方法

重写的应用:当子类需要父类的功能,二功能主题子类有自己特有内容时,可以重写父类中的方法。这样,既沿袭了父类的功能,又定义了子类特有的内容

方法重写(override)和方法重载(overload)的区别:

overload可以改变返回值类型,只看参数列表

方法重写:子类中出现了和父类中方法声明一模一样的方法。与返回值类型有关 返回值是一致的

方法重载:本类中出现的方法名一样 参数列表不同的方法 与返回值类型无关

子类对象调用方法的时候:先找子类本身 再找父类

注意事项:

  • 父类中私有方法不能被重写 因为子类无法继承
  • 子类重写父类方法时 访问quan权限不能更低 最好一致
  • 父类静态方法 子类也必须通过静态方法进行重写
  • 子类重写父类方法时 最好声明一模一样

H. final关键字修饰类,方法及其变量的特点

final修饰特点:

  • 修饰类 类不能被继承
  • 修饰变量 变量就变成了常量 只能被赋值一次
  • 修饰方法 方法不能被重写

猜你喜欢

转载自blog.csdn.net/qq_40777545/article/details/81265156
今日推荐