前言

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基础-进阶继承,抽象类,接口的更多相关文章

  1. Java基础进阶:继承重点摘要,继承详解,方法重写注意事项,方法重载与重写的区别,抽象类,代码块, 附重难点,代码实现源码,课堂笔记,课后扩展及答案

    继承重点摘要 *继承的特点: 子类在初始化之前,一定要先完成父类数据的初始化 子类在初始化之前,一定要先访问父类构造,完成父类数据的初始化 系统在每一个构造方法中默认隐藏了一句super(); 如果我 ...

  2. 十、Java基础---------面向对象之抽象类与接口

    抽象类(abstract)     当编写一个类时,时常会为该类定义一些方法,这些方法的使用用以描述该类的行为方式,那么这些方法都有具体的方法体.但是在某些情况下,某个父类只是知道子类应该包含怎样的方 ...

  3. Java基础进阶:多态与接口重点摘要,类和接口,接口特点,接口详解,多态详解,多态中的成员访问特点,多态的好处和弊端,多态的转型,多态存在的问题,附重难点,代码实现源码,课堂笔记,课后扩展及答案

    多态与接口重点摘要 接口特点: 接口用interface修饰 interface 接口名{} 类实现接口用implements表示 class 类名 implements接口名{} 接口不能实例化,可 ...

  4. centos tomcat/resin安装配置 卸载系统自带的java tomcat安装配置 安装JDK resin安装配置 第二十八节课

    centos  tomcat/resin安装配置  卸载系统自带的java  tomcat安装配置  安装JDK   resin安装配置    第二十八节课 tomcat和java都不需要编译 tom ...

  5. Java实习生常规技术面试题每日十题Java基础(三)

    目录 1.是否可以从一个static方法内部发出对非static方法的调用? 2.Integer与int的区别? 3.Overload和Override的区别.参数列表相同,返回值不同的方法,是否是重 ...

  6. 风炫安全web安全学习第二十八节课 CSRF攻击原理

    风炫安全web安全学习第二十八节课 CSRF攻击原理 CSRF 简介 跨站请求伪造 (Cross-Site Request Forgery, CSRF),也被称为 One Click Attack 或 ...

  7. Java实习生常规技术面试题每日十题Java基础(八)

    目录 1.解释内存中的栈(stack).堆(heap)和静态区(static area)的用法. 2.怎样将GB2312编码的字符串转换为ISO-8859-1编码的字符串? 3.运行时异常与受检异常有 ...

  8. Java实习生常规技术面试题每日十题Java基础(四)

    目录 1.String 和StringBuffer的区别. 2.数组有没有length()这个方法? String有没有length()这个方法? 3.final, finally, finalize ...

  9. Java实习生常规技术面试题每日十题Java基础(一)

    目录 1.Java 的 "一次编写,处处运行"如何实现? 2.描述JVM运行原理. 3.为什么Java没有全局变量? 4.说明一下public static void main(S ...

随机推荐

  1. SQL Server 磁盘请求超时的833错误原因分析以及解决

    本文出处:http://www.cnblogs.com/wy123/p/6984885.html 最近遇到一个SQL Server服务器响应极度缓慢,并且出现客户端请求报错的情况,在数据库中的erro ...

  2. 关于$.ajax同步和异步的问题和提交后台的一些问题。

    经常有人ajax函数外,定义一个全局变量,并且在返回函数取出一个值用作判断条件,但是这一条件常常失效. var OnOff=0; var checkPhone = function() { var p ...

  3. Windows server 2012 R2 解决“无法完成域加入,原因是试图加入的域的SID与本计算机的SID相同

    Windows server 2012 R2 解决“无法完成域加入,原因是试图加入的域的SID与本计算机的SID相同.”使用克隆的系统时,加域是出现如下问题.“无法完成域加入,原因是试图加入的域的SI ...

  4. Android 二维码扫描/生成

    先看看实现效果 1.在module的build.gradle中执行compile操作 compile 'cn.yipianfengye.android:zxing-library:2.2' 2.在Ap ...

  5. easyui 回车搜索

    代码: js: // 搜索 $("#searchButton").click(function() { var ip = $("#searchIp").val( ...

  6. IntelliJ IDEA常用快捷键(Mac)

    Mac 键盘符号和修饰键说明 ⌘ ——> Command ⇧ ——> Shift ⌥ ——> Option ⌃ ——> Control ↩︎ ——> Return/Ent ...

  7. Linux下Mysql安装(tar安装)

    1.为数据库创建软件目录以及数据存放目录 #mysql软件目录 mkdir /software/ #mysql数据文件目录 mkdir /data/mysql 2.上传mysql-XXXXXX.tar ...

  8. webapi postman 415 错误

    https://blog.csdn.net/Intangible_moon/article/details/80183121 猜测:如果后台接口使用的是[fromBody]标签的话,需要使用raw方式

  9. 基于springboot的restful接口的单元测试示例

    一.知识点 代码中对应的知识点 1.jsonPath github网址 1)操作符见文档 2)方法见文档 3)例子见文档 2.MockMvc(org.springframework.test.web. ...

  10. Python6大设计原则

    内容总览 六大设计原则都有哪些 一.单一职责原则 二.里氏替换原则 三.依赖倒置原则 四.接口隔离原则 五.迪米特法则 六.开放封闭原则 内容详解 一.单一职责原则 单一职责原则:英文名称是Singl ...