类的继承
来源:互联网 发布: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.让类和类之间产生关系,为多态创造了条件
- c++类的继承:私有继承,公有继承,保护继承
- 类的继承 保护继承和私有继承
- C#类的继承-什么是继承
- 继承QVector----模板类的继承
- 类的一般继承与虚继承
- 继承:单继承、派生类成员的访问属性、多继承、菱形继承、虚继承,菱形虚拟继承
- java 类的继承
- 类的继承
- C#类的继承
- JavaScript类的继承
- C++ 类的继承
- 类的继承
- Java类的继承
- 类的继承
- 抽象类的继承
- 类的继承
- 类的继承用法
- 类的继承方式
- XCode升级后插件失效的原理与修复办法
- netbeans 8 安装支持python的插件
- linux Linux 3.x的设备树(Device Tree) dts 介绍
- 类型转换操作符
- 91. PHP namespace关键字和__NAMESPACE__常量
- 类的继承
- iOS开发中实现后台定位功能
- java并发编程之ConcurrentHashMap
- Ant入门教程之常用命令
- 【Bug解决】Spring配置错误:java.io.FileNotFoundException: class path resource [cxd/entity/User.hbm.xml] canno
- jQuery 实现小功能之回到顶部
- 挑战程序设计竞赛 多重部分和问题(恰好装满的完全背包)
- 解决 Eclipse Android studio adb 无法打开的问题
- C++中使用Lua脚本 和lua中调用c的方法