抽象类:使用abstract关键字定义的类就是抽象类
 很多具有相同特征和行为的  对象  可以抽象成一个    
 很多具有相同 特征和行为的      可以抽象成一个      抽象类

抽象类的使用规则

1.抽象类可以没有抽象方法,有抽象方法的必须是抽象类

什么是抽象方法呢,就是只在抽象类里声明一个方法,不去写具体怎么实现的,哪个类继承了这个抽象类,再把这个方法具体化

/可以没有抽象方法
abstract class abstractTest1{//  abstract public void eat();
}//有抽象方法的必须声明为抽象类class person{public person(){System.out.println("我是猪");}abstract public void talk();
}

  2.非抽象类继承抽象类必须实现所有抽象方法

不是抽象类但是继承了抽象类,就必须实现抽象类里的所有方法

public class abstractTest {public static void main(String[] args) {man man=new man();man.talk();}
}
abstract class person{
//别的类继承了本类,实例化的时候就会首先执行本类中的构造方法public person(){System.out.println("我是猪");}abstract public void talk();
}
//这个man实现类继承了person抽象类,必须实现person类里面所有的抽象方法,否则就会报错class man extends person{public void talk(){System.out.println("我是男人,爱老婆");}
}

3.抽象类可以继承抽象类,不必实现父类抽象方法

这句话就比较简单理解了

abstract class person{public person(){System.out.println("我是猪");}abstract public void talk();
}
抽象类继承了抽象类,不用实现其方法
abstract class test1 extends person{}

4.抽象类可以有方法和属性,也可以有构造方法

abstract class person{private String name;public person(){System.out.println("我是猪");}abstract public void talk();
}

5.抽象类不可被实例化,只能通过继承来使用

public class abstractTest {public static void main(String[] args) {man man=new man();man.talk();//这一句系统就会报错abstractTest1 abstractTest1=new abstractTest1() ;         }
}
//抽象类的使用只能让别的类继承使用
abstract class abstractTest1{abstract public void eat();
}

6.抽象类不能声明为final

final声明的类就是不能被继承的类,而被abstract关键字声明的类只能通过继承来使用,两者相当于反义词了

final关键字的使用规则

1.final定义的属性都是常量,不能被修改的

final声明的属性都表示最终的,一旦赋值就无法再次进行修改了

2.final修饰的方法只能被继承,不能被重写

public class finalTest {public static void main(String[] args) {ziLei ziLei=new ziLei(); ziLei.cc();   //只能调用final声明的方法,不能重写}
}
class fuLei{public final int a=100;public  final void print(final int SIZE){System.out.println(SIZE);}public void cc(){System.out.println("嘿嘿");}}

3.final修饰的类表示最终类,无法被继承

final class constant{public static final int COUNT=20;}//这样就会报错,final声明的类表示最终类,不能被继承的
class ziLei extends constant{public ziLei(){}}

java抽象类与final关键字的用法相关推荐

  1. java 抽象类 final_Java8 final关键字与抽象类

    final关键字 最终无法改变的 final修饰的变量如果是成员变量没有默认初始值,如果修饰局部变量可以只声明不初始化 final 修饰类 方法 变量 final 修饰类:不能被继承 不能有子类 fi ...

  2. java final定义_Java中final关键字的用法

    final在Java中并不常用,然而它却为我们提供了诸如在C语言中定义常量的功能,不仅如此,final还可以让你控制你的成员.方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中 ...

  3. java final char_java基本数据类型总结 类型转换 final关键字的用法

    java基本数据类型总结 Java数据类型总结 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式.接触每种语言的时候,都会存在数据类型的认识,有复杂的. ...

  4. 浅谈Java中的final关键字

    浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来 ...

  5. 浅析Java中的final关键字

    浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来 ...

  6. 【转】浅析Java中的final关键字

    谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法. ...

  7. 详解java中的final关键字

    概述 final 简介 final关键字可用于多个场景,且在不同场景具有不同的作用.首先,final是一个非访问修饰符,仅适用于变量,方法或类.下面是使用final的不同场景: 上面这张图可以概括成: ...

  8. Java中的final,finalized,finally用法

    Java中的final,finalized,finally用法 final: final可以让你控制你的成员.方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中拥有了一个不可或 ...

  9. 深入理解Java中的final关键字

    深入理解Java中的final关键字 http://www.importnew.com/7553.html Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什 ...

最新文章

  1. FatNet:一个用于三维点云处理的特征关注网络
  2. uva 101 木块问题
  3. Javaweb权限管理设计思路
  4. 【核心API开发】Spark入门教程[3]
  5. SAP 参照sto订单创建外向交货BAPI
  6. Netty ByteBuf(图解之 2)| 秒懂
  7. java设计模式之简单工厂模式
  8. centos iptables_SQLyog远程连接centos中mysql数据库
  9. Hive(6)-DML数据操作
  10. 【bootloader】bootloader启动过程分析
  11. linux删除第二列为空_Linux系列第二谈(开机关机、Linux中的文件、目录管理、基本属性)...
  12. 利用泛型与反射更新实体(ADO.NET Entity Framework)
  13. Maxwell的简介与使用
  14. 微软开源网络攻防模拟工具CyberBattleSim介绍及源码分析
  15. 【学英语】老友记S1E1
  16. 小米路由器3实现锐捷认证[免刷固件]
  17. P2837 [USACO08FEB]Dining Cows B 题解
  18. 【代数语言学巡礼】Lambda-演算在形式语义学的中应用II
  19. 【JVM】最全笔记(黑马+尚硅谷+张龙整合笔记)
  20. 刷屏器!简单!快速!稳定!可控制速度!

热门文章

  1. 报警器语音ic单片机芯片如何选型
  2. c语言初学知识点,C语言学习关于数据类型的一些知识点(初学者)
  3. Tomcat下log4j日志文件 配置过程
  4. 为何电脑下载mp3等音乐导入U盘后无法在汽车上播放?网易云等音乐软件夹带私货!!
  5. 归一化互相关(NCC)计算视差图
  6. HDU-4069___Squiggly Sudoku —— 锯齿数独 + BFS
  7. 求树的直径的两种方法
  8. 如何理解接口隔离原则?
  9. 数据库设计学习②:数据库设计的步骤
  10. Could not find multidex.jar (com.android.support:multidex:1.0.2).