面向对象整理 抽象类

访问控制权限和package import关键字

ava中不同的包之间用import关键字导入包文件

代码块

普通代码块

构造代码块

静态代码块

普通的代码块用{},括号中式一个变量的生存周期,定义在括号中的变量叫做局部变量,定义在整个文件上面的叫做全局变量,语句是依次执行。

构造代码块:直接在类中定义且没有加static关键字的代码块称为{}构造代码块。构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。

静态代码块:在java中使用static关键字声明的代码块。静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。如果类中包含多个静态代码块,那么将按照"先定义的代码先执行,后定义的代码后执行"。

内部类:定义在一个类中的类叫做内部类,作用是内部类和外部类之间可以轻松的进行私有属性的访问。

继承

定义:子类可以继承父类的属性和方法

注意:只可以单继承,私有private不可继承。

继承只可单一继承。

使用extends关键字

对一个类中已有的方法进行改写的过程叫做覆写。

基于构造方法,在子类中无法实例化父类中的属性和方法,要使用super()关键字来实例化父类中的属性和方法。

final关键字(终结,完结)

1.使用final声明的类不能被继承(太监类)

2使用final声明的方法不能被子类覆写。

3使用final声明的变量不能被修改,可看做常量

一般final关键字和static一起使用,定义一个不可改变的固定值。

抽象类

定义:含抽象的方法的类成为抽象类,抽象类不能被实例化。

注意:

1包含一个抽象方法的类就是抽象类

2抽象类或抽象方法使用abstract修饰。

3抽象方法只需要声明,不需要实现。

4抽象方法被子类继承是,必须重写全部抽象方法。

5抽象类不能被实例化。

接口

定义:特殊的“抽象类”,没有普通方法,由全局常量和公共的抽象方法组成。

JDK1.8增强接口定义,可以定义普通变量和普通方法。

使用interface关键字,abstract可以省略

可以同时实现多个接口(解决了不能多继承的问题)

可以同时继承(extends)和实现(implements),先继承后实现

接口可以继承接口,且可以同时继承多个接口

interface x extendsA,B{}

接口中不能有构造方法

多态

多态的最终目的是为了参数的统一,统一参数的数据类型

多态必须基于继承

1方法的重载和重写

2父类引用指向子类实例

对象转型

  向上转型:子类对象-父类对象(安全)自动转换

  向下转型:父类对象-子类对象(不安全)强制转换

Person x=new Student();
		
		
		Person person=new Person();
		Student student=new Student();
		//向上转型
		person=student;
		//向下转型
		student=(Student)person;
		
		Employee employee=new Employee();
		employee=(Employee)person;

  

原文地址:https://www.cnblogs.com/dldrjyy13102/p/7589681.html