【JAVA语法】03Java-继承性
- 继承的实现
- 继承的限制
- 子类对象的实例化
- 方法的重写
- Super关键字
- 重写与重载的区别
- final关键字
- 抽象类
- 接口
一、继承的实现
1.1 格式
class 子类 extends 父类 {}
class Student extends Person{}
二、继承的限制
2.1 Java中只允许单继承
class Student extends People,Worker {}
//error,不允许多继承(一个人只允许有一个亲生父亲)
2.2 子类不能直接访问父类的私有成员
需要用get及set方法实现访问
三、子类对象的实例化
必须先调用父类中的构造方法,再调用子类构造方法
四、方法的重写
4.1 定义
子类定义了与父类同名的方法(方法名称、返回值类型和参数均完全相同)
class Parent{
public void tell(){
System.out.println("Parent");
}
}
class Sub extends Parent{
public void tell(){
System.out.println("Sub");
}
}
public class test {
public static void main(String[] args)
{
Sub subFunc = new Sub();
subFunc.tell();
}
}
OUTPUT: Sub
4.2 重写限制
被子类重写的方法不能拥有比父类更加严格的访问权限 (一般和父类一样即可)
private(更严格)<default<public
五、Super关键字
5.1强行调用父类的方法
若想调用父类同名方法——Super关键字
class Parent{
public void tell(){
System.out.println("Parent");
}
}
class Sub extends Parent{
public void tell(){
super.tell();
System.out.println("Sub");
}
}
public class test {
public static void main(String[] args)
{
Sub subFunc = new Sub();
subFunc.tell();
}
}
OUTPUT:
Parent
Sub
5.2 Super不一定在重写中使用,也可以表示那些方法是从父类继承而来的(提高代码可读性)
六、重写与重载区别

七、Final关键字
7.1 用途: 完结、最终
使用final声明的类不能被继承;
使用final声明的方法不能被重写;
使用final声明的属性不能被修改(常量)。
八、抽象类
8.1 概念
抽象类:包含一个抽象方法的类(不能直接实例化对象,需通过其子类实例化对象)
抽象方法:声明而未被实现的方法(使用abstract关键字声明)
重写:抽象类被子类继承,子类(如果不是抽象类)必须重写并实现抽象类中所有抽象方法
abstract class Abs{
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public abstract void say();//抽象方法
}
class SubAbs extends Abs{
public void say(){
}
}
public class test {
public static void main(String[] args)
{
SubAbs a = new SubAbs();
a.setAge(20);
}
}
九、接口
9.1 概念
接口:特殊的类,全部由全局常量和公共抽象方法所组成
实现:接口必须通过子类实现(类比抽象方法),使用关键字implements
多实现:接口可以多实现(多继承,区分"类"的单继承)
9.2 格式
interface interfaceName{
全局常量
抽象方法
}
9.3 一个子类可以同时继承抽象类和实现接口
interface Inter1{
public static final int AGE = 100;
public abstract void tell();
}
interface Inter2{
public abstract void say();
}
abstract class Abs1{
public abstract void print();
}
class Sub extends Abs1 implements Inter1,Inter2{ //多继承(多实现)
public void tell(){}
public void say(){}
public void print(){ //一个子类可以同时继承抽象类和实现接口
}
}
9.4 接口的继承——相当于间接实现"类的多继承"
一个接口不能继承一个抽象类,但是可以通过extends关键字同时继承多个接口,实现接口的多继承
interface Inter1{
public static final int AGE = 100;
public abstract void tell();
}
interface Inter2{
public abstract void say();
}
interface Inter3 extends Inter1,Inter2{
}
【JAVA语法】03Java-继承性的更多相关文章
- Java语法
java语法: 一个java程序可以说是一系列对象的集合,而这些对象都要通过调用彼此的方法来协同工作. 对象: 对象是一个实例,例如:一只猫,它是一个对象,有状态和行为.它的状态状态有:颜色,名字,品 ...
- Java语法糖1:可变长度参数以及foreach循环原理
语法糖 接下来几篇文章要开启一个Java语法糖系列,所以首先讲讲什么是语法糖.语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的 ...
- 程序员带你学习安卓开发,十天快速入-对比C#学习java语法
关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...
- Java语法基础(1)
Java语法基础(1) 1. Java是一门跨平台(也就是跨操作系统)语言,其跨平台的本质是借助java虚拟机 (也就是JVM(java virtual mechinal))进行跨平台使用. ...
- C++、Java语法差异对照表
C++.Java语法差异对照表 C++ and Java Syntax Differences Cheat Sheet First, two big things--the main function ...
- jsp页面执行java语法,获取的值在页面调用
首先在页面头引用用到类的包路径 写需要执行的java语法 页面转换引用 <!-- 引用包路径 --> <%@ page language="java" impor ...
- Java语法之反射
一.反射机制 在前面Java语法之注解自定义注解时我们也有提到反射,要获取类方法和字段的注解信息,必须通过Java的反射技术来获取 Annotation对象.那什么是反射呢?JAVA反射机制是在运行状 ...
- Java语法知识总结
一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名为Java: ...
- Java语法糖设计
语法糖 Java语法糖系列,所以首先讲讲什么是语法糖.语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的字节码或者特定的方式对这 ...
- 深入理解java虚拟机(十二) Java 语法糖背后的真相
语法糖(Syntactic Sugar),也叫糖衣语法,是英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语.指的是,在计算机语言中添加某种语法,这些语法糖虽然不会对语言 ...
随机推荐
- centos崩溃后如何修复
首先看能不能进单用户模式,能进去,就用mount -o remount,rw / 重置成可写的. 不能进单用户模式,就进入光盘救援模式,进去挂载了系统,这时候通常是必要的动态静态库出了问题,先应该做的 ...
- storm(5)-分布式单词计数例子
例子需求: spout:向后端发送{"sentence":"my dog has fleas"}.一般要连数据源,此处简化写死了. 语句分割bolt(Split ...
- java转pdf(html转为pdf),解决中文乱码,标签不规范等问题
第一步,下载jar包以及建对应的文件夹.注意pd4ml的jar要选择pro版本.然后建一个pd4fonts.properties 里面对应的字体. SimSun = simsun.ttf 前面为变量名 ...
- J15W-J45W全铜质截止阀厂家,J15W-J45W全铜质截止阀价格 - 专题栏目 - 无极资讯网
无极资讯网 首页 最新资讯 最新图集 最新标签 搜索 J15W-J45W全铜质截止阀 无极资讯网精心为您挑选了(J15W-J45W全铜质截止阀)信息,其中包含了(J15W-J45W全铜质截止阀)厂 ...
- Spring Roo 想知道源码,怎么实现自动生成枯燥的有规律的文件
简介 似乎是社区在维护的,不在 Spring 官网的 main projects 列表里,而是在 社区projects 列表里 是工具,不是像Spring Boot 一样的框架 http:// ...
- LCA(最近公共祖先)
学习链接:https://baike.baidu.com/item/%E4%BC%B8%E5%B1%95%E6%A0%91/7003945?fr=aladdin 求LCA的方法有很多,在这里就只介绍一 ...
- Python中socket经ssl加密后server开多线程
前几天手撸Python socket代码,撸完之后经过ssl加密,确保数据的安全,外加server端开启多线程保证一个客户端连接有一个线程来服务客户端,走了不少的弯路,网上的信息啥的要 ...
- hadoop集群搭建过程中遇到的问题
在安装配置Hadoop集群的过程中遇到了很多问题,有些是配置导致的,有些是linux系统本身的问题造成的,现在总结如下. 1. hdfs namenode -format出现错误:hdfs namen ...
- Respone笔记
1 设置定时刷新的头 //设置定时刷新的头 response.setHeader("refresh", "5;url=http://www.baidu.com" ...
- mvc框架的学习步骤
1 搭建环境.有个感性认识 2 如何完成controller和viewer的映射 3 如何把值传给controller 4 controller如何把值传给view 5 异常处理 6 页面标签 7文件 ...