您的位置:首页 > 编程语言 > Java开发

【java基础知识】面向对象三大特性之继承

2017-04-11 09:46 543 查看
1.复用类

(1)组合:把一个类当做对象放到另一个类里面去使用

(2)继承:基于已存在的类构造一个新类。

*已存在的类称为父类、基类或超类;

*新类称为子类、派生类、或孩子类。

(3)继承与组合的关系

*继承表现为一般——特殊的关系,子类是一个特殊的父类,是is-a的关系。父类具有所有子类的一般特性。

*组合表现为整体——部分关系,即has-a关系。在组合中,通过将“部分”单独抽取出来,形成自己的类定义,并且在“整体”

2.继承的定义:

实现类重复利用的重要手段,通过继承,子类可以具有父类中定义的方法和属性,子类还可以根据需求添加自己的方法和属性,因此在定义父类和子类类型时,只要通过继承关键字指明两者属于父子关系,那么子类就可以通过继承机制拥有父类的行为和特征。

3.继承定义格式:

[<修饰符>] class <子类名> extends <父类名> {
[<属性定义>]
[<构造方法定义>]
[<方法声明>]
}


注意:定义类只能使用单继承,且子类无法继承父类的构造方法,同时父类中private关键字修饰的属性和方法,子类是无法继承的。如果子类和父类不在同一个包下,default状态的属性和方法也无法继承。

4.几种关键字的介绍

(1)extends关键字:

紧跟在类名后面用于继承父类

(2)super关键字

*用于调用父类中的构造函数;

*调用父类中的方法和属性。

(3)final关键字

*可以在类、成员变量和方法之前进行修饰;

*final修饰类:表示该类不能被继承;

*final修饰成员变量:表示该类是一个常量;

*final修饰方法:表示该方法在类中不能被重写.

(4)instanceof关键字

*一个二元操作符,其作用是判断某个对象是否为某个类或接口类型

*当instanceof左侧操作数为右侧操作数指定的类型或者子类型时返回true,否则返回false.

例:

public class Person{
String name;
int age;

public Person(String name,int age) {
this.name = name;
this.age = age;
}

public String getName(){
return this.name;
}

//final方法不能被继承
public final void setAge(int age) {
this.age = age;
}
}

class Student extends Person{
int number;
private final int ID_CARD = 612236; //ID_CARD的值不能改变

public Student(String name, int age, int number){
super(name,age);  //调用父类的构造函数
this.number = number;
}

public static void main(String[] args){
Student t = new Student("Lee",21,1001);
//因为Student是Person的子类,所以返回true
System.out.println(t instanceof Person);
//getName()是从父类继承而来
System.out.println(t.getName());
}
}


本人才疏学浅,如有错误,请指出~

谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: