java的继承、接口方面的语法及知识

继承(inheritance):一个类只能继承一个类
代码复用
继承的语法:
class ChildClass extends ParentsClass{

}
父类的属性子类中都存在,只是有没有权限访问的问题
根据名字找谁是谁?
1.变量-> 类型 (类、接口)->接口
2.已经确定是变量
局部变量、形参->类的属性-> 外部类的属性
就近原则
构造方法:
注意默认的那个无参构造方法

优先调用父类的构造方法
如果没有明确指出,java会插入一条调用父类的构造方法(无参的)
利用super关键字:
1.调用父类的构造方法
2.去访问被隐藏的父类的属性
3.去调用被覆写的父类的方法
调用父类的构造方法一定出现在本类构造方法的第一行
this关键字的作用:
1.访问对象的属性或方法(当前对象)
2.调用其他构造方法
3.代表本对象

调用构造方法:先父类后子类
加载构造方法:先父类后子类
***必须在父类的所有初始化完再去执行子类的初始化
执行顺序:
static属性初始化是在类的加载时按顺序执行
定义时初始化、代码块初始化
普通属性初始化是在对象的构造时执行
1.定义时初始化和构造代码块按书写顺序执行
2.构造方法初始化
类的加载:
1.什么是类的加载(Node类的加载)?
从硬盘上找到Node.class,解析该文件内容,生成Node类,把Node类的信息存放在内存的方法区
2.什么情况下会触发类的加载,并且该类不在内存中
按需加载(懒加载过程)
1.实例化该类的一个对象 new Node(1);
2.使用类的静态属性或者静态方法 Main.merge(...)
3.用到子类必须先要有父类 new CNode
对象的构造、实例化 new Node
规则:
1.优先初始化父类的属性
2.按照下面的顺序执行初始化
按照代码书写顺序,执行定义时和构造代码块
再去执行构造方法
覆盖(override)(方法不是静态方法)
方法名一致,参数列表一致
方法签名:方法名称+形参·列表
方法重载:方法名称+参数列表不同
构造对象的语法:
Node node=new Node(1);
new的作用:
1)为对象计算所需内存的大小
2)申请空间
3)初始化0x0
static只能出现在成员级别
static 和对象进行解绑
abstract 关键字有什么作用?
1.修饰类·,该类是抽象类,无法被实例化的类
abstract class A{} new A是错误的
2.修饰方法,该方法是抽象方法,没有被实现的方法
abstract void method();
包含抽象方法的一定是抽象类。
抽象类不一定包含抽象方法。
fina关键字有什么作用:
1.修饰类:表示该类无法被继承
2.修饰方法:该方法无法被覆写(方法名和形参)
3.修饰变量:该变量的值只能被初始化一次,无法再次修改
final类中不可以有abstract方法
final类和final方法基本没关系
重载overload和覆写override:
1.方法签名:方法名+形参列表
重载:方法名相同,形参列表不同
2.覆写,发生在子类继承父类或者类实现接口
1).方法名和形参列表相同
2).方法的返回类型要比父类的返回类型相等或者小
3).访问限定符:访问限定符只能和父类的相同或者大
4)[email protected] 注解

接口:一个类可以有多个接口
interface 接口名
引用=对象;
1.引用只能指向对象,或者什么都不指向
2.数组引用、类类型引用、接口类型的引用
3.对象:数组对象、非抽象类类型的对象

原文地址:https://blog.51cto.com/14232274/2431719

时间: 2024-10-17 17:11:52

java的继承、接口方面的语法及知识的相关文章

JAVA抽象类和接口的深入探讨

Java 语言中,抽象类(abstract class) 和接口(interface) 是抽象思想的两种体现形式.初学者很容易把这两者搞混,所以Java面试中考抽象类和接口的区别的面试题也常有出现的. 本文将从下面几个方面深入探讨一下Java 抽象类和接口 一.抽象类语法及规范 二.接口的语法及规范 三.抽象类和接口的区别 ,将从语义细节及设计层面两方面来描述 本文由本人查阅资料并结合自己理解所作,如果有理解不到位的地方,欢迎各位斧正. 一.抽象类 抽象类使用 abstract class 来定

Java基础10 接口的继承与抽象类

链接地址:http://www.cnblogs.com/vamei/archive/2013/03/31/2982240.html 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在实施接口中,我们利用interface语法,将interface从类定义中独立出来,构成一个主体.interface为类提供了接口规范. 在继承中,我们为了提高程序的可复用性,引入的继承机制.当时的继承是基于类的.interface接口同样可以继承

Java基础10 接口的继承与抽象类(转载)

接口继承 接口继承(inheritance)与类继承很类似,就是以被继承的interface为基础,增添新增的接口方法原型.比如,我们以Cup作为原interface: interface Cup{    void addWater(int w);    void drinkWater(int w);} 我们在继承Cup的基础上,定义一个新的有刻度的杯子的接口,MetricCup 接口如下: interface MetricCup extends Cup{    int WaterContent

关于Java中继承和接口的理解

关于Java中继承和接口的理解 Java语言中,为了实现代码重用,设计了继承这一机制,但是,其设计成单继承,这样设计是有原因的,如下图: Figure1:deadly diamond of death 此图问题称为菱形问题(diamond problem),就是说,当A的子类B和C同时实现了A中的方法,则同时继承了B和C的子类D在调用该方法时会出现混乱,无法得知该调用哪一个方法. 既然不能实现多继承,我们就会考虑把很多方法就写在父类里,或者继承抽象类,实现其方法,但是,这样会导致一个问题,比如说

关于Java中继承多接口同名方法的问题

在Java中如果一个类同时继承接口A与B,并且这两个接口中具有同名方法,会怎么样? 动手做实验: 1 interface A{ 2 void fun(); 3 } 4 interface B{ 5 void fun(); 6 } 7 interface C extends A,B{ 8 9 } 10 public class Test implements C{ 11 @Override 12 public void fun() { 13 System.out.println("hehe&quo

java通过继承来扩展接口

接口主要是为了向上转型,从而使基类(接口方法)更具灵活性!不想废话,看例子: /** * */ package interfaces; interface Monster{ void menace(); } interface DangerousMonster extends Monster{ void destory(); } interface Lethal{ void kill(); } class DragonZilla implements DangerousMonster{ publ

Java类集(接口继承的关系)

类集的概念: 类集(Collection)就是一个动态的对象数组,与一般的对象数组不同,类集中的对象内容可以任意扩充. 类集的特性: 这种框架是高性能的 框架必须允许不同类型的类集以相同的方式和高度互操作方式工作 类集必须是容易扩展和/或修改的 Java类集(接口继承的关系)

【Java面试题】60 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?

接口可以继承接口.抽象类可以实现(implements)接口,抽象类可以继承具体类.抽象类中可以有静态的main方法. 问:  抽象类是否可继承实体类 (concrete class) 答: 抽象类是可以继承实体类,但前提是实体类必须有明确的构造函数. 答案很明确,可以继承.其实从Object就是个实体类,Java的API文档里,每个抽象类的条目里都明确写着直接或间接继承自Object,所以这点是没有疑问的. 关键在于这答案里所说的"前提是实体类必须有明确的构造函数"一句,是什么意思.

毕向东Java视频学习笔记【Day09 继承+接口+抽象类】

Java_Day09 继承+接口+抽象类 构造函数 子父类中的构造函数特点. 在子类构造对象时,发现访问子类构造函数时,父类也运行了. 为什么呢? 因为:在子类的构造函数中第一行有一个默认的隐式语句 super() 子类的实例化过程:子类中所有的构造函数默认都会访问父类中的空参构造函数. 在每个子类构造函数中,都有一个隐式的super()调用父类空参构造函数. 如果想输出22行内容,必须在29行改为super(5),这样可以访问到父类带参数的构造函数. 为什么子类实例化的时候会访问到父类的构造函