随着时代的发展,电脑培训已经是我们生活中不可缺少的一门技术,那么Java的基本数据类型有哪些呢,我校的小编为大家整理了一些有关于Java的基本数据类型的相关内容,希望对各位学员能够有所帮助哦!
继承是从一个基类得到一个或多个类的机制。
继承自另一个类的类被称为该类的子类。这种关系通常用父类和孩子来比喻。子类将继承父类的特性。这些特性由属性和方法组成。子类可以增加父类之外的新功能,因此子类也被称为父类的“扩展”。
在PHP中,类继承通过extends关键字实现。继承自其他类的类成为子类或派生类,子类所继承的类成为父类或基类。(PHP只支持单继承,PHP不支持方法重载)。
class Computer{
private$_name='联想120';
private function __get($_key){
return$this->$_key;
}
public function run(){
echo'我是父类';
}
}
class NoteBookComputer extends Computer{
}
$notebookcomputer=new NoteBookComputer();
$notebookcomputer->run();
echo$notebookcomputer->_name;
字段和方法的重写(覆盖)
有些时候,并不是特别需要父类的字段和方法,那么可以通过子类的重写来修改父类的字段和方法。
class Computer{
public$_name='联想120';
protected function run(){
echo'我是父类';
}
}
class NoteBookComputer extends Computer{
public$_name='IBM';
public function run(){
echo'我是子类';
}
}
子类调用父类的字段或方法
为了安全,我们一般将父类的方法封装了起来,这样,外部就无法调用,只能被继承它的子类所看到。这个时候,就需要通过子类操作来调用父类了。
class Computer{
protected$_name='联想120';
protected function run(){
echo'我是父类';
}
}
class NoteBookComputer extends Computer{
public function getName(){
echo$this->_name;
}
public function getRun(){
echo$this->run();
}
}
通过重写调用父类的方法
有的时候,我们需要通过重写的方法里能够调用父类的方法内容,这个时候就必须使用语法:父类名::方法()或者parent::方法()即可调用。
class Computer{
protected function run(){
echo'我是父类';
}
}
class NoteBookComputer extends Computer{
public function run(){
echo Computer::run();//
}
}
final关键字可以防止类被继承,有些时候只想做个独立的类,不想被其他类继承使用,那么就必须使用这个关键字。建议只要是单独的类,都加上这个关键字。
final class Computer{
//无法继承的类
final public function run(){}//无法被继承的方法
}
class NoteBookComputer extends Computer{
//会报错
}
抽象类和方法(abstract)
抽象方法很特殊,只在父类中声明,但在子类中实现。只有声明为abstract的类可以声明抽象方法。
规则:
1.抽象类不能被实例化,只能被继承。
2.抽象方法必须被子类方法重写。
abstract class Computer{
abstract function run();
}
final class NotebookComputer extends Computer{
public function run(){
echo'我实现了';
}
}
接口(interface)
接口定义了实现某种服务的一般规范,声明了所需的函数和常量,但不指定如何实现。之所以不给出实现的细节,是因为不同的实体可能需要用不同的方式来实现公共的方法定义。关键是要建立必须实现的一组一般原则,只要满足了这些原则才能说实现了这个接口。
规则:
1.类全部为抽象方法(不需要声明abstract)
2.接口抽象方法必须是public
3.成员(字段)必须是常量
interface Computer{
const NAME='联想120';
public function run();
}
final class NotebookComputer implements Computer{
public function run(){
echo'实现了接口的方法';
}
}
$notebookcomputer=new NoteBookComputer();
$notebookcomputer->run();
echo Computer::NAME;
子类可以实现多个接口
interface Computer{
const NAME='联想120';
public function run();
}
interface Notebook{
public function book();
}
final class NotebookComputer implements Computer,Notebook{public function run(){
echo'实现了接口的方法';
}
public function book(){
echo'实现了接口的方法';