Java三大特性之继承
来源:互联网 发布:2014网络流行语口头禅 编辑:程序博客网 时间:2024/05/24 04:41
转载请标明出处:http://blog.csdn.net/wu_wxc/article/details/51455293
本文出自【吴孝城的CSDN博客】
extends:意思是扩展,但一般我们叫做继承。
继承可以定义为一个类获得另一个类的属性(方法和字段)
子类继承父类所有的成员(字段、方法、嵌套类),但不能使用父类private(私有)的方法和属性
构造方法不是成员,所以不会被继承,但可以被调用。
Java是单继承,但可以多实现(implements),一般继承基本类和抽象类用extends,实现接口用implements
extends的使用如下
class Super { ....... .......}class Sub extends Super{ ....... .......}
implements的使用如下
// 接口interface People{ ....... .......}// 类class Person { ....... .......}// 实现People接口class Student implements People{ ....... .......}// 继承Person并实现Peopleclass Worker extends Person implements People{ ....... .......}
extends关键字的使用
package cn.wuxiaocheng;// 父类class People { public void say() { System.out.println("父类"); }}// 子类,通过extends扩展处父类(Calculation)class Student extends People { public void tell() { System.out.println("子类"); }}public class TestExtends { public static void main(String[] args) { Student student = new Student(); // 调用父类扩方法 student.say(); // 调用子类的方法 student.tell(); }}
运行结果如下
super关键字
如果子类中有和父类同名的成员,可以用它来区分。也是用来调用父类的构造方法的
如:
package cn.wuxiaocheng;//父类class Foo { int i = 10; public Foo() { System.out.println("Foo"); }}// 子类class Sub extends Foo { // 和父类同名的成员变量 int i = 20; // 创建子类构造函数 Sub() { // 调用父类无参数的构造方法,构造函数的调用必须是构造函数中的第一个语句 super(); // 用super调用和父类同名的成员变量 System.out.println(super.i); }}public class SuperTest { public static void main(String[] args) { // 构造函数直接创建应会调用 new Sub(); }}
结果如下
接口
接口通常以interface来声明,一个类通过实现接口,从而实现接口中的抽象方法
接口并不是类,类描述属性和方法,接口则包含类要实现的方法
要注意的是
接口没有构造方法
接口中所有的方法必须是抽象方法,没写abstract的话系统也会自动添加上
接口不能用于实例化对象
声明接口不需要使用abstract
接口中的每一个方法也都是隐式的,声明时同样不需要使用abstract关键字
接口中的方法都是public公有的
接口可以多实现,
接口中定义的变量都是常量,public static final修饰,如果没写,系统也会自动添加上
接口文件通常会在文件名前面加”I”,用来区分
IAnimal.java
package cn.wuxiaocheng;//定义一个接口,省略abstractpublic interface IAnimal { public void say();}Dog.javapackage cn.wuxiaocheng;// 用implements关键字实现IAnimal接口public class Dog implements IAnimal { // 实现接口必须里面的方法 @Override public void say() { System.out.println("狗叫是汪汪"); }}
Cat.java
package cn.wuxiaocheng;//继承抽象类必须实现抽象类中的抽象方法public class Cat implements IAnimal { @Override public void say() { System.out.println("猫叫是喵"); }}
Test.java
package cn.wuxiaocheng;public class Test { public static void main(String[] args) { // 接口的引用指向一个实现了接口的对象 IAnimal iAnimal1 = new Dog(); iAnimal1.say(); IAnimal iAnimal2 = new Cat(); iAnimal2.say(); }}
0 0
- java的三大特性之继承
- JAVA三大特性之二---继承
- java三大特性之 继承
- Java三大特性之继承
- Java三大特性之继承
- Java三大特性之---继承
- java 三大特性之继承
- Java三大特性之继承+多态
- Java 的三大特性之继承
- java的三大特性之继承
- Java三大特性之继承
- java的三大特性之继承
- java的三大特性之继承
- JAVA三大特性--继承
- java三大特性--继承
- Java三大特性--继承
- java三大特性:继承
- Java进阶---理解Java的三大特性之继承
- iOS 截屏+裁剪
- Java自带的性能监测工具用法简介——jstack、jconsole、jinfo、jmap、jdb、jsta、jvisualvm
- rapidjson的read和write的sample
- 【java】自定义ClassLoader 加载外部类和jar文件
- POJ 2230 DFS
- Java三大特性之继承
- Ubuntu安装JDK
- html表单学习笔记
- eclipse反编译查看源码工具安装教程
- 【leetcode】238. Product of Array Except Self
- Java web 定时执行任务
- 在iOS应用程序中打开设备设置界面及其中某指定的选项界面
- 深入掌握include_once与require_once的区别
- 事务与死锁