java的三大关系

继承

class 父类 {
}
class 子类 extends 父类 {
}

继承的方式
单继承:A extends B
链条继承:A extends B;  B extends C
多对一继承:A extends X;  B extends X

Java 不允许多继承,但是可以多继承接口

继承的特点
子类拥有父类的属性、方法,除了private方法和属性
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展
子类可以用自己的方式实现父类的方法

super关键字
可以通过super关键字来实现对父类成员的访问。

this关键字
指向自己的引用。

final关键字
final 关键字声明类可以把类定义为不能继承的,即最终类
或者用于修饰方法,该方法不能被子类重写

封装

方法:将代码的实现隐藏起来,对外只提供接口
多态:通过抽象类或接口,对外只提供API
包和JAR:把类中所有元素的实现方式隐藏,对外只提供接口
权限:访问修饰符现方式

多态

概述

同一个行为具有多个不同表现形式的能力
程序中引用变量,指向不同的实现

举例
儿子不光有父亲的一些特性。在这个基础上,儿子又有自己的特性
在同一个事情上,儿子有父亲的处理方式,也可以有自己的处理方式

通过该引用变量,具体指向哪个对象,在写代码时并不确定
而是在程序运行期间才确定
在程序运行过程中,通过动态创建的对象的方法表,来定位方法的方式
我们叫做 动态绑定机制 也是多态的体现

在编译阶段就能够确定调用哪个方法的方式,我们叫做静态绑定机制
new一个类赋值给对象,就是静态绑定

重写(Override)

重写(Override)是子类对有权限的父类方法的实现,进行重新编写的过程

返回值和参数列表都不能改变
即外壳不变,核心重写
重写的好处在于子类可以根据需要,定义特定于自己的行为
也就是说子类能够根据需要实现父类的方法

重写的要求是:两同、两小、一大

两同:方法名、参数列表相同

两小:
1、引用类型中,子类返回值的类型,必须是父类返回值类型的子类。基本类型中,返回值类型必须完全一致
2、子类抛出的异常类型,要小于父类抛出的异常类型

一大:子类的权限修饰符,要大于等于父类的权限修饰符

抽象类

抽象类:
抽象类是不能实例化的类,必须被继承,才能被使用
用abstract修饰,目的是为了代码重写
类里面的成员变量、成员方法、构造方法和普通类一样
在Java中抽象类表示的是一种继承关系
一个类只能继承一个抽象类,而一个类却可以实现多个接口
public abstract class Animal{
       
}

抽象方法:
如果想设计一个类,不设定类里方法的实现
想让它的方法实现,由子类完成,那么就可以设置抽象方法
abstract 关键字同样可以用来声明抽象方法
抽象方法只包含一个方法名,而没有方法体
方法名后面直接跟一个分号,而不是大括号
public abstract class Animal{
       public abstract void Say();
}

如果一个类包含抽象方法,那么该类必须是抽象类
任何子类必须重写父类的抽象方法,或者声明自身为抽象类

接口

作用在于将API的定义和代码实现进行分离
接口和类很像,但不是类

接口的写法
1、接口没有构造方法
2、接口中所有的方法必须是抽象方法,不能在接口中写实现
3、一个实现接口的类,必须实现接口内所描述的所有方法
否则就必须声明为抽象类
4、接口的变量,会被隐式的指定为public static final变量
5、接口中的方法也是隐式抽象的,声明时不需要abstract关键字
6、支持多继承,其实不是继承,而是实现

接口的特点
1、不能实例化,但是可以被实现
2、接口的字节码,也是保存在.class中
3、只能是 public abstract,其他修饰符都会报错

接口的定义
public interface Animal{
        public void eat();
}

接口的实现
public class Cat implements Animal{

}

转型

向上转型
一个子类类型安全地变为父类类型的赋值,被称为向上转型(upcasting)
父类 f = new 子类();

向下转型
把一个父类类型强制转型为子类类型,就是向下转型(downcasting)
Java中的一个双目运算符,用来测试一个对象是否为一个类的实例。

Person p = new Student();
System.out.print(p instanceof Student);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值