前言

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. [Redis]Redis的五种数据类型与键值/服务器相关命令

    -------------------------------------------------------------------------------------- String(字符串):最 ...

  2. virsh命令详解

    1.简介: virsh 有命令模式和交互模式如果直接在vrish后面添加参数是命令模式,如果直接写virsh,就会进入交互模式. 2.命令模式: virsh list    列出所有的虚拟机,虚拟机的 ...

  3. 自定义模块和grains

    一.自定义模块 saltstack有很多模块,模块的源码文件是在salt项目的:salt/modules.py; salt linux-node2-computer sys.doc   查看有哪些mo ...

  4. mysql 按出现次数排序

    SELECT * FROM table a LEFT  JOIN (SELECT key,count(*) as c FROM table GROUP BY key )  b on a.key=b.k ...

  5. Kafka自带zookeeper报错INFO Got user-level KeeperException when processing xxx Error Path:/brokers Error:KeeperErrorCode = NodeExists for /brokers (org.apache.zookeeper.server.PrepRequestProcessor)

    问题描述: 按照kafka官方文档的操作步骤,解压kafka压缩包后.依次启动zookeeper,和kafka服务 kafka服务启动后,查看到zookeeper日志里有以下异常 问题原因及解决办法: ...

  6. C程序的编译与链接

    编译器驱动程序 编译器驱动程序可以在用户需要时调用语言预处理器.编译器.汇编器和链接器. 例如使用GNU编译系统,我们需要使用如下命令来调用GCC驱动程序: gcc -o main main.c 编译 ...

  7. oday获取系统最高权限的代码

    import sys,sockettarget = sys.argv[1]shellcode = ("\x6a\x4f\x59\xd9\xee\xd9\x74\x24\xf4\x5b\x81 ...

  8. pip 国内源 配置

    pip 国内源 配置 2017年12月09日 16:05:20 阅读数:183 最近使用 pip 安装包,动辄十几 k 甚至几 k 的下载速度,确实让人安装的时候心情十分不好.所以还是要给 pip 换 ...

  9. 201621123002《JAVA程序设计》第三章学习总结

    1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词,如类.对象.封装等 关键词:类 对象 封装 构造函数 this,static,final 1.2 用思维导图或者Onenote或 ...

  10. 线程属性 pthread_attr_t

    参考资料: https://blog.csdn.net/hudashi/article/details/7709413 Posix线程中的线程属性pthread_attr_t主要包括scope属性.d ...