类的继承

来源:互联网 发布:mac下制作winpe 编辑:程序博客网 时间:2024/06/05 10:46

在java中,被继承的类叫超类(superclass),继承超类的类叫子类(subclass)

子类是超类的一个功能上的扩展,它继承了超类定义的所有属性和方法,并且添加了特有功能

所有的类都继承自java.lang.Object类,所以说Object类是所有类的父类。如果在定义类时不做规定,自己定义的类直接继承自Object类

 继承的语法

class 子类名 extends 父类名

 extends关键字用来实现继承

访问修饰符

public:用public修饰的类成员(包括字段和)方法被称为公有的,外界可以直接存取公有数据,调用公有方法

private:用private修饰类成员称为私有的,类的私有成员只能被这个类的方法直接访问

protected:  用protected修饰的成员称为被保护的,类的保护成员允许其子类继承,为了使子类能够直接继承父类成员,

 把这些成员(大部分是数据)说明为被保护的

default:  如果类成员前面没有任何访问修饰符,则称为默认,默认的类成员除了允许被其归属的类访问外,还允许

同一个包中的其他类访问

方法重写(override)

class 父类{                                                                                            访问权限   方法返回值类型   方法1(参数1){  }}class 子类 extends 父类{    访问权限   方法返回值类型   方法1(参数1){  }}

所谓覆盖 就是方法名称相同,但却在不同的场合做不同的事,子类重新定义了父类已有的方法,则称为方法覆盖

this关键字

this是指当前对象自己,当一个类要明确使用对象自己的变量或函数时应该加上this引用,例如:

public class Hello{String s="Hello";public Hello(String s){  System.out.println("s = " + s);   System.out.println("1 -> this.s = " + this.s);   this.s = s;   System.out.println("2 -> this.s = " + this.s); }public static void main(String[] args) {  Hello x=new Hello("Hello World!");}}
super关键字

java方法的覆盖经常要用到的关键字,-super , 用来调用子类所复制父类的字段和方法

super.子类所复制父类的字段super.子类所复制父类中的方法

static方法

子类不能覆盖父类中被声明的static方法

public class Person {   static String name;  static int age;  public static String talk(){  return "我是:"+name+", 今年:"+age+"岁";  }}

显示的错误信息:

这个实例方法不能覆盖Person.talk这个static方法

final方法

子类不能覆盖父类中被声明的final方法

public class Person {   static String name;  static int age;  public final String talk(){<span style="white-space:pre"></span>  return "我是:"+name+", 今年:"+age+"岁";  }}


显示的错误信息:

子类不能覆盖来自父类Person的final方法

多层继承

class A{//类主体}classB extends A{//类主体}classC extends B{//类主体}
在Java类中不可以进行多重继承,但确是可以进行多层继承的。对于多层继承Java也只允许单继承,即一个子类只有一个父类,父类可以有多个子类。

继承的好处:

1.提高代码的重用性

2.让类和类之间产生关系,为多态创造了条件

0 0
原创粉丝点击