java抽象类与final关键字的用法
抽象类:使用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关键字的用法相关推荐
- java 抽象类 final_Java8 final关键字与抽象类
final关键字 最终无法改变的 final修饰的变量如果是成员变量没有默认初始值,如果修饰局部变量可以只声明不初始化 final 修饰类 方法 变量 final 修饰类:不能被继承 不能有子类 fi ...
- java final定义_Java中final关键字的用法
final在Java中并不常用,然而它却为我们提供了诸如在C语言中定义常量的功能,不仅如此,final还可以让你控制你的成员.方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中 ...
- java final char_java基本数据类型总结 类型转换 final关键字的用法
java基本数据类型总结 Java数据类型总结 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式.接触每种语言的时候,都会存在数据类型的认识,有复杂的. ...
- 浅谈Java中的final关键字
浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来 ...
- 浅析Java中的final关键字
浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来 ...
- 【转】浅析Java中的final关键字
谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法. ...
- 详解java中的final关键字
概述 final 简介 final关键字可用于多个场景,且在不同场景具有不同的作用.首先,final是一个非访问修饰符,仅适用于变量,方法或类.下面是使用final的不同场景: 上面这张图可以概括成: ...
- Java中的final,finalized,finally用法
Java中的final,finalized,finally用法 final: final可以让你控制你的成员.方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中拥有了一个不可或 ...
- 深入理解Java中的final关键字
深入理解Java中的final关键字 http://www.importnew.com/7553.html Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什 ...
最新文章
- FatNet:一个用于三维点云处理的特征关注网络
- uva 101 木块问题
- Javaweb权限管理设计思路
- 【核心API开发】Spark入门教程[3]
- SAP 参照sto订单创建外向交货BAPI
- Netty ByteBuf(图解之 2)| 秒懂
- java设计模式之简单工厂模式
- centos iptables_SQLyog远程连接centos中mysql数据库
- Hive(6)-DML数据操作
- 【bootloader】bootloader启动过程分析
- linux删除第二列为空_Linux系列第二谈(开机关机、Linux中的文件、目录管理、基本属性)...
- 利用泛型与反射更新实体(ADO.NET Entity Framework)
- Maxwell的简介与使用
- 微软开源网络攻防模拟工具CyberBattleSim介绍及源码分析
- 【学英语】老友记S1E1
- 小米路由器3实现锐捷认证[免刷固件]
- P2837 [USACO08FEB]Dining Cows B 题解
- 【代数语言学巡礼】Lambda-演算在形式语义学的中应用II
- 【JVM】最全笔记(黑马+尚硅谷+张龙整合笔记)
- 刷屏器!简单!快速!稳定!可控制速度!
热门文章
- 报警器语音ic单片机芯片如何选型
- c语言初学知识点,C语言学习关于数据类型的一些知识点(初学者)
- Tomcat下log4j日志文件 配置过程
- 为何电脑下载mp3等音乐导入U盘后无法在汽车上播放?网易云等音乐软件夹带私货!!
- 归一化互相关(NCC)计算视差图
- HDU-4069___Squiggly Sudoku —— 锯齿数独 + BFS
- 求树的直径的两种方法
- 如何理解接口隔离原则?
- 数据库设计学习②:数据库设计的步骤
- Could not find multidex.jar (com.android.support:multidex:1.0.2).