第二十八节:Java基础-进阶继承,抽象类,接口
前言
Java
基础-进阶继承,抽象类,接口
进阶继承
class Stu {
int age = 1;
}
class Stuo extends Stu {
int agee = 2;
}
class Demo{
Stuo stuo = new Stuo();
}
成员变量的特殊情况
成员函数
class Stu{
void show(){
System.out.println("Stu show");
}
}
class Stue extends Stu{
void show(){
System.out.println("Stu show run");
}
}
class Demo{
public static void mian(String[] args){
Stue stue = new Stue();
stue.show();
}
}
重写
override
重写,覆盖,复写
写法:函数的返回值类型,函数名,参数列表都要一样
子父类中构造函数的特点
在子类和父类中都有构造函数,运行时,先执行父类中的构造函数,在执行子类的构造函数,因为子类的所有构造函数中第一行都有一句,隐式的super()
;,表示为调用父类的无参的构造函数。
在子类中为什么有super()
呢,子类会一旦继承父类,会继承父类中的内容,子类在初始化的时候,会先到父类进行父类的初始化操作,这没问题吧,因为这样才可以使用父类中的内容。
子类中所有的构造函数,都会访问父类中默认的空参函数。
class Student extends Person{
Student(){
// super();
System.out.println("dashucoding");
}
Student(String name){
this(); // 调用Student()的方法
System.out.println("dashucoding");
}
}
如this
关键字的描述,在子类中我们会用到this
关键字,this
是写在构造函数的第一行,用来调用本类的其他构造函数的,那么还会有super()
了吗,没有了。super()
也是用来放在第一行的,用来显示初始化的。
在构造函数中,第一行默认都是super()
,所有对象的父类都是Object
类,所以父类中的构造函数默认第一行,除非自己写,否则都是隐式的super()
,用来访问父类中的构造函数。
this
语句和super
语句必须在第一行
子类实例化过程的应用
class Person{
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
}
class Student extends Person {
public Student(String name,int age){
super(name,age);
}
}
final关键字
final
关键字用来修饰变量,另外在Java
中的String
类表示为字符串,字符串是常量,它的值在创建以后不能被修改,而字符串缓冲区中的字符串可变。
修饰符,修饰变量,方法,类
final
修饰的类为最终类,修饰方法为最终方法,不能被重写
抽象类abstract
抽象类是一个父类,具有自己的构造函数,但是不能给自己的对象进行初始化,却可以给自己的子类对象进行初始化。
包含抽象方法的类叫做抽象类,抽象类中抽象方法是不完整的,仅有声明而没有方法体。一个类中包含一个或者多个抽象方法,则这个类被叫做为抽象类。
接口
接口解决了多继承的问题,将多继承的这种机制在
java
中通过接口实现了,接口与接口之间是继承的关系。
interface A{
void showa();
}
interface B{
void showb();
}
class C implements A,B{
public void showa(){};
public void showb(){};
}
抽象类是用来描述事物的基本功能,抽象类中可以没有抽象方法,但是具有抽象方法的类定为抽象类,接口中定义只能是抽象方法。
结语
- 本文主要讲解 Java基础-进阶继承,抽象类,接口
- 下面我将继续对
Java
、Android
中的其他知识 深入讲解 ,有兴趣可以继续关注 - 小礼物走一走 or 点赞
第二十八节:Java基础-进阶继承,抽象类,接口的更多相关文章
- Java基础进阶:继承重点摘要,继承详解,方法重写注意事项,方法重载与重写的区别,抽象类,代码块, 附重难点,代码实现源码,课堂笔记,课后扩展及答案
继承重点摘要 *继承的特点: 子类在初始化之前,一定要先完成父类数据的初始化 子类在初始化之前,一定要先访问父类构造,完成父类数据的初始化 系统在每一个构造方法中默认隐藏了一句super(); 如果我 ...
- 十、Java基础---------面向对象之抽象类与接口
抽象类(abstract) 当编写一个类时,时常会为该类定义一些方法,这些方法的使用用以描述该类的行为方式,那么这些方法都有具体的方法体.但是在某些情况下,某个父类只是知道子类应该包含怎样的方 ...
- Java基础进阶:多态与接口重点摘要,类和接口,接口特点,接口详解,多态详解,多态中的成员访问特点,多态的好处和弊端,多态的转型,多态存在的问题,附重难点,代码实现源码,课堂笔记,课后扩展及答案
多态与接口重点摘要 接口特点: 接口用interface修饰 interface 接口名{} 类实现接口用implements表示 class 类名 implements接口名{} 接口不能实例化,可 ...
- centos tomcat/resin安装配置 卸载系统自带的java tomcat安装配置 安装JDK resin安装配置 第二十八节课
centos tomcat/resin安装配置 卸载系统自带的java tomcat安装配置 安装JDK resin安装配置 第二十八节课 tomcat和java都不需要编译 tom ...
- Java实习生常规技术面试题每日十题Java基础(三)
目录 1.是否可以从一个static方法内部发出对非static方法的调用? 2.Integer与int的区别? 3.Overload和Override的区别.参数列表相同,返回值不同的方法,是否是重 ...
- 风炫安全web安全学习第二十八节课 CSRF攻击原理
风炫安全web安全学习第二十八节课 CSRF攻击原理 CSRF 简介 跨站请求伪造 (Cross-Site Request Forgery, CSRF),也被称为 One Click Attack 或 ...
- Java实习生常规技术面试题每日十题Java基础(八)
目录 1.解释内存中的栈(stack).堆(heap)和静态区(static area)的用法. 2.怎样将GB2312编码的字符串转换为ISO-8859-1编码的字符串? 3.运行时异常与受检异常有 ...
- Java实习生常规技术面试题每日十题Java基础(四)
目录 1.String 和StringBuffer的区别. 2.数组有没有length()这个方法? String有没有length()这个方法? 3.final, finally, finalize ...
- Java实习生常规技术面试题每日十题Java基础(一)
目录 1.Java 的 "一次编写,处处运行"如何实现? 2.描述JVM运行原理. 3.为什么Java没有全局变量? 4.说明一下public static void main(S ...
随机推荐
- SQL Server 磁盘请求超时的833错误原因分析以及解决
本文出处:http://www.cnblogs.com/wy123/p/6984885.html 最近遇到一个SQL Server服务器响应极度缓慢,并且出现客户端请求报错的情况,在数据库中的erro ...
- 关于$.ajax同步和异步的问题和提交后台的一些问题。
经常有人ajax函数外,定义一个全局变量,并且在返回函数取出一个值用作判断条件,但是这一条件常常失效. var OnOff=0; var checkPhone = function() { var p ...
- Windows server 2012 R2 解决“无法完成域加入,原因是试图加入的域的SID与本计算机的SID相同
Windows server 2012 R2 解决“无法完成域加入,原因是试图加入的域的SID与本计算机的SID相同.”使用克隆的系统时,加域是出现如下问题.“无法完成域加入,原因是试图加入的域的SI ...
- Android 二维码扫描/生成
先看看实现效果 1.在module的build.gradle中执行compile操作 compile 'cn.yipianfengye.android:zxing-library:2.2' 2.在Ap ...
- easyui 回车搜索
代码: js: // 搜索 $("#searchButton").click(function() { var ip = $("#searchIp").val( ...
- IntelliJ IDEA常用快捷键(Mac)
Mac 键盘符号和修饰键说明 ⌘ ——> Command ⇧ ——> Shift ⌥ ——> Option ⌃ ——> Control ↩︎ ——> Return/Ent ...
- Linux下Mysql安装(tar安装)
1.为数据库创建软件目录以及数据存放目录 #mysql软件目录 mkdir /software/ #mysql数据文件目录 mkdir /data/mysql 2.上传mysql-XXXXXX.tar ...
- webapi postman 415 错误
https://blog.csdn.net/Intangible_moon/article/details/80183121 猜测:如果后台接口使用的是[fromBody]标签的话,需要使用raw方式
- 基于springboot的restful接口的单元测试示例
一.知识点 代码中对应的知识点 1.jsonPath github网址 1)操作符见文档 2)方法见文档 3)例子见文档 2.MockMvc(org.springframework.test.web. ...
- Python6大设计原则
内容总览 六大设计原则都有哪些 一.单一职责原则 二.里氏替换原则 三.依赖倒置原则 四.接口隔离原则 五.迪米特法则 六.开放封闭原则 内容详解 一.单一职责原则 单一职责原则:英文名称是Singl ...