继承
概念:继承是面向对象程序设计不可缺少的设计思想,是实现代码可重用的根基,是提高代码可扩展性的主要途径。
集体内容:1,继承必须拥有父类
2.java中所有的类默认继承object类
3.java中使用extends作为继承的关键字
4.java中只允许单继承
5.继承的子类可以调用父类的非私有属性和方法
6.继承的子类可以重写子类的方法
super关键字
super关键字代表父类的引用,在程序中主要的用途
在子类构造方法中要调用父类的构造方法,需要注意:super语句只能出现在子类构造方法体的第一行。
用“super.成员变量名”来引用父类成员变量
用“super.方法名(参数列表)”的方式访问父类的方法。
与this的区别,this通常指代当前对象,super通常指代父类。
方法的重写
上述内容6的延伸
集体规则如下:
方法名相同、参数列表相同;
返回值类型相同;
访问权限等于或大于父类权限;
//方法的重写加继承以及super关键字
package com.xufeihu.javaoop.day4;
public class QiuTian extends Dog {
private String biaoqing="smilling";
//方法的重写 在父类定义的方法无法满足子类的需求是
//子类可以通过以下方法对父类定义的方法进行重写 可以将父类的方法全部丢弃
//也可以通过例如super.eat();将父类的方法进行使用同时加入自己的新的方法
//一旦方法重写实现则创建的子类对象无法访问到父类的该方法,只可使用子类的方法
//规则:方法名,参数列表相同(eat())
// 返回值类型相同(void int)
// 访问权限大于或等于父类(访问权限修饰符)
@Override
public void eat() {
super.eat();
System.out.println("不吃饭");
}
}
接口
定义:使用 interface 关键字用来声明一个接口。
具体实现:
[访问修饰符] interface 接口名称 [extends 其他的接口名1,….其他的接口名n] {
// 声明常量
// 抽象方法
}
特性
接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。
接口中每一个方法也是隐式抽象的,默认为public abstract 。
接口中声明的属性默认为 public static final 的;
接口不是被类继承了,而是要被类实现。
接口不能实例化对象(无构造方法),但可以声明对象的引用。(多态性)
多个类可以实现同一个接口。
一个类可以实现多个接口,但只能继承一个类。
与继承关系类似,接口与实现类之间存在多态性。
一个接口能继承其它多个接口。
当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。
具体实现
public interface Animal {
//接口中定义抽象方法
//所有属性默认为: public static final
int num=10;
//所有方法默认为:public abstract
void eat();
void sleep();
void work();
void PingZhong();
}
接口可以在java中实现多继承