【Java知识点总结】 final关键字与抽象类

final关键字:

概念:

学习了继承我们发现继承有一个弊端,就是它会打破封装性;如果不让其他类继承该类,就不会有重写了,→可以通过Java中的几个关键字来实现,final(最终化)。

final关键字是一个修饰符,可以修饰类、方法、变量(成员变量、局部变量、静态变量)。

什么时候用?

当程序中一个数据使用时是固定不变的,这时为了增加阅读性,可以给该数据起个名字,这就是变量,为了保证这个变量的值不被修改,加上final修饰,这就是一个阅读性很强的常量。书写规范:被final修饰的常量名所有的字母都是大写的,如果由多个单词组成,单词间通过  _  连接。

特点:

1,final修饰的类是一个最终类,不饿能够再派生子类(如果类中出现部分可以重写,部分不可以,只要给指定的方法最终化就可以了);

2,final修饰的方法是最红方法,不可以被重写;

3,final修饰的变量是一个常量,只能被赋值一次。

抽象类:

产生:

在描述事物时,没有足够的信息描述一个事物,这时该事物就是抽象事物,它的功能也不具体,这些不具体的功能需要在类中标识出来,使用Java中的关键字abstract(抽象)。

定义了抽象函数的类也必须被abstract关键字修饰,被abstract关键字修饰的类是抽象类。

特点:

1,抽象类和抽象方法都需要被abstract修饰,抽象方法一定要定义在抽象类中;

2,抽象类不可以创建实例,原因:调用抽象方法没有意义;

3,只有覆盖了抽象类中所有的抽象方法后,其子类才可以实例化,否则该子类还是一个抽象类。

【细节问题】

1,抽象类一定是个父类?

是的,因为不断抽取而来的。

2,抽象类是否有构造函数?

有,虽然不能给自己的对象初始化,但是可以给自己的子类对象初始化。

抽象类和一般类的异同点:

相同:

1,它们都是用来描述事物的。

2,它们之中都可以定义属性和行为。

不同:

1,一般类可以具体的描述事物。

抽象类描述事物的信息不具体

2,抽象类中可以多定义一个成员:抽象函数。

3,一般类可以创建对象,而抽象类不能创建对象。

3,抽象类中是否可以不定义抽象方法。

是可以的,那这个抽象类的存在到底有什么意义呢?仅仅是不让该类创建对象。

4,抽象关键字abstract不可以和哪些关键字共存?

1,final:

2,private:

3,static:

练习:

需求:公司中程序员有姓名,工号,薪水,工作内容。项目经理除了有姓名,工号,薪水,还有奖金,工作内容

在问题领域中先找寻其中涉及的对象。

程序员

属性:姓名,工号,薪水

行为:工作

项目经理

属性:姓名,工号,薪水,奖金

行为:工作

这些对象是否有关系呢?发现了他们之间的共性,应该存在着关系。

可以将他们的共性向上抽取到共性类型:员工。

员工:

属性:姓名,工号,薪水

行为:工作

发现员工的工作内容本身就不具体。应该是抽象的,由具体的子类来体现的。

abstract class Employee
{
	private String name;
	private String id;
	private double pay;
	/**
	构造一个员工对象,一初始化就具备着三个属性。
	*/
	public Employee(String name,String id,double pay)
	{
		this.name = name;
		this.id = id;
		this.pay = pay;
	}
	/**
	工作行为。
	*/
	public abstract void work();
}

//具体的子类:程序员。
class Programmer extends Employee
{
	public Programmer(String name,String id,double pay)
	{
		super(name,id,pay);
	}
	public void work()
	{
		System.out.println("code....");
	}
}

//具体的子类:经理。
class Manager extends Employee
{
	//特有属性。
	private double bonus;
	public Manager(String name,String id,double pay,double bonus)
	{
		super(name,id,pay);
		this.bonus = bonus;
	}
	public void work()
	{
		System.out.println("manage");
	}
}

class AbstractTest
{
	public static void main(String[] args)
	{
		System.out.println("Hello World!");
	}
}

————毕老师day09视频

时间: 2024-08-25 19:56:07

【Java知识点总结】 final关键字与抽象类的相关文章

【Java总结】final关键字,抽象类,接口,内部类

final final修饰类,表示这个 类不能被继承 final修饰方法,表示这个方法不能被重写 final修饰常量(常量大写),表示常量不能被修改内容 static final修饰的常量,表示全局常量 抽象类 使用abstract修饰的类,这个类是抽象类 使用abstract修饰的方法,为抽象方法,此方法只有生命没有实现 含有抽象方法的类必须是抽象类 抽象类不能实例化,抽象类的子类必须重写父类的抽象方法 不能使用abstract修饰属性,私有方法,构造器,静态方法,final方法 /*我为抽象

【Java基础】final关键字总结

Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实例.final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的. final关键字的含义? final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如

深入理解Java中的final关键字

Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实例.final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的. final关键字的含义? final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如

深入理解Java中的final关键字(转)

文章转自http://www.importnew.com/7553.html Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实例.final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的. final关键字的含义? final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变

浅析Java中的final关键字

原文出处: 海子 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正. 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量).下面就从这三个方面来了解一下final关键字

转载:浅析Java中的final关键字

文章转自:http://www.cnblogs.com/dolphin0520/p/3736238.html 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cn

浅析Java中的final关键字(转载)

自http://www.cnblogs.com/dolphin0520/p/3736238.html转载 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量).下面就从这三个方面来了解一下final关键字的基本用法. 1.修饰类 当用final修饰一个类时,表明这个类不能被继承.也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰.final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方

关于Java中的final关键字

Java中的final关键字是用来限制用户行为的,说白了,就是用来限制我们这些程序员的.final可以用来修饰:变量.方法.类. 1)Java final variable final用来修饰变量时,该变量的值是不能改变的,其实就变成了常量,等同于c++中的constant关键字.来个栗子尝尝: 1 class Bike9{ 2 final int speedlimit=90;//final variable 3 void run(){ 4 speedlimit=400; 5 } 6 publi

浅析Java中的final关键字(转)

浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/p/3736238.html 一

浅谈Java中的final关键字

谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法. 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量).下面就从这三个方面来了解一下final关键字的基本用法. 1.修饰类   当用final修饰一个类时,表明这个类不能被继承.也就是说,如果一个类你永远不会让他被继承,就可以用final