前言

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. oracle数据链接

    using System; using System.Collections.Generic; using System.Data; using System.Data.OracleClient; u ...

  2. springmvc controller方法返回值

  3. 使用JavaMail发送邮件-从FTP读取图片并添加到邮件正文发送

    业务分析: 最近工作需要,需要从FTP读取图片内容,添加到邮件正文发送.发送邮件正文,添加附件采用Spring的MimeMessageHelper对象来完成,添加图片也将采用MimeMessageHe ...

  4. cdnbest站点里设置防盗链

    设置需求只允许 test.kangleweb.com 访问  ,其他网站链接全部拒绝 (注:如果test.kangleweb.com是用https访问,那引用的内容地址www447.yivpn.cn也 ...

  5. 在ASP.NET MVC中使用Area区域

    在大型的ASP.NET mvc5项目中一般都有许多个功能模块,这些功能模块可以用Area(中文翻译为区域)把它们分离开来,比如:Admin,Customer,Bill.ASP.NET MVC项目中把各 ...

  6. Java 基本类型和包装类型

    讲基本类型和包装类型之前,首先要介绍,装箱和拆箱 装箱:基本类型转化为包装类型 拆箱:包装类型转化为拆箱类型 为什么要有包装类型?Java是面向对象的语言,Java中一切都是对象除了基本数据类型,所以 ...

  7. day34 并发编程之生产者消费者模型 队列

    1.守护进程(了解) """ 守护进程 表示 一个进程b 守护另一个进程a 当被守护的进程a结束后 那么b也跟着结束了 就像 皇帝驾崩 妃子殉葬 应用场景 之所以开启子进 ...

  8. android 字体加粗

    参考 https://blog.csdn.net/to_cm/article/details/6002812 TextView tv = (TextView)findViewById(R.id.Tex ...

  9. 伪类+js实现CSS3 media queries跨界准确判断

    @media screen and (min-width: 45em) { body:after{ content:"宽屏" } } var content = window.ge ...

  10. JS数组存储(两个数组相等,一个改变,另一个跟着改变)

    数组是一种引用数据类型,数组引用变量只是一个引用,数组元素和数组变量在内存里是分开存放的实际的数组元素被存储在堆(heap)内存中:数组引用变量是一个引用类型的变量,被存储在栈(stack)内存中. ...