JAVAOO 继承~接口 笔记

继承

继承方式:public class 子类  extends 父类

关键字:super

super调用父类时必须是第一条语句

继承的优点

代码可重用 子类可以扩展父类的属性和方法。父类的属性和方法可用于子类。设计应用程序变得更简单

所有类的跟类都是Object

方法重写

发生在子类中,对父类重写

1.子类的方法的返回值类型,方法名和形式参数列表 必须和父类中的相同

2.访问修饰符必须不小于父类中的访问修饰符

3.子类中重写的异常不能抛出比父类更多的异常

构造器中子类会默认调用父类的无参构造器

使用final修饰符 类不能再被继承

抽象类 abstract 需要被继承,不能与final同时存在

抽象方法没有方法主体

抽象方法必须出现在抽象类中

抽象方法在子类中必须实现,除非子类也是抽象类

多态:

步骤:

1.编写父类与子类

2.子类中重写父类方法

3.用父类数据类型引用子类

多态分为: 静态多态   动态多态

接口:

interface 接口;

接口中的方法都是抽象方法,没有构造方法,不能被实例化

implements 实现接口

接口与接口可以继承,也可以多重继承

使用接口的原则

使用接口解决多重继承

使用接口为外部类添加功能

以面向对象的角度考虑,将一个类与身自来的特征和行为和依赖于外部的可选的特征和行为特征

接口的优点:

将设计和实现分离,对外隐藏了实现

面向接口编程是OOP的核心

接口和抽象类的区别

接口所有方法都是abstract的,所有的属性都是 public static final

正确选择两者使用的时机

时间: 2024-10-09 22:32:44

JAVAOO 继承~接口 笔记的相关文章

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

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

day24 继承 接口 多态

抽象类与接口类 接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子类继承接口类,并且实现接口中的功能 class Alipay: ''' 支付宝支付 ''' def pay(self,money): print('支付宝支付了%s元'%money) class Applepay: ''' apple pay支付 ''' def pay(

【转载】Javascript原型继承-学习笔记

阮一峰这篇文章写的很好 http://www.ruanyifeng.com/blog/2011/06/designing_ideas_of_inheritance_mechanism_in_javascript.html 笔记如下: 一直很难理解Javascript语言的继承机制. 它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instance)的区分,全靠一种很奇特的"原型链"(p

【C/C++学院】(10)重载与重写/多态的深入/多继承接口

1. 重写 PK 重载理解 1.1 函数重载 必须在同一个类中进行 子类无法重载父类的函数,父类同名函数将被名称覆盖 重载是在编译期间根据参数类型和个数决定函数调用 1.2 函数重写 必须发生于父类与子类之间 并且父类与子类中的函数必须有完全相同的原型 使用virtual声明之后能够产生多态(如果不使用virtual,那叫重定义) 多态是在运行期间根据具体对象的类型决定函数调用 #include <cstdlib> #include <iostream> using namespa

nopCommerce 3.9 接口笔记

接口笔记 Nop.Services.Configuration ISettingService : 配置接口(查看) Nop.Services.Localization ILocalizationService:本地化资源接口(查看) ILanguageService:语言接口(查看) ILocalizedEntityService:本地化属性接口(查看) LocalizationExtensions:本地化服务扩展(查看)

基类显式继承接口,类继承基类时又继承同一接口,引发接口方法混乱(显式继承接口的弊端)

基类BaseOutput显式继承了一个接口IOutput,之后类TrackOutput继承BaseOutput,同一时候又继承了IOutput接口.假定IOutput有方法Output,这样在TrackOutput中就有两个Output方法,一个源于基类BaseOutput,于个源于接口IOutput.这样就引发了混乱.要怎么办?先看以下的一段代码 interface IOutput { void output(); } class BaseOutput : IOutput { void IOu

《C#高级编程》【第四章】继承 -- 学习笔记

计算机程序,在很大的程度上是为了描述和解决现实问题.在面向对象语言中的类很好的采用了人类思维中抽象和分类的方法,类和对象的关系很好的反映了个体与同类群体的共同特征的关系.但是在诸多共同点之下还是存在着些许差异.于是面向对象语言中设计了继承机制,允许我们在保持原有类特性的基础上,进行拓展.由于类的继承和派生机制的引入,使得代码的重用性和可扩充性大大提高.利用这个机制我们还可以站在巨人的肩膀上就行开发---利用别人写好的类进行扩充,这样又可以提高我们的开发效率.在派生新类的过程一般来说有三个步骤:吸

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

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

编写高质量代码改善C#程序的157个建议——建议46:显式释放资源需继承接口IDisposable

建议46:显式释放资源需继承接口IDisposable C#中的每一个类型都代表一种资源,资源分为两类: 托管资源:由CLR管理分配和释放的资源,即从CLR里new出来的对象. 非托管资源:不受CLR管理的对象,如Windows内核对象,或者文件.数据库连接.套接字.COOM对象等. 如果我们的类型使用了非托管资源,或者需要显示地释放托管资源,那么就需要让类型继承接口IDisposable,这毫无例外.这相当于告诉调用者,类型资源是需要显示释放资源的,你需要调用类型的Dispose方法. 一个标