版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_42587283/article/details/89225434
目录
一、什么是继承
二、为什么需要继承
三、继承的特性
四、如何实现继承
一、什么是继承
继承对应java这门面向对象来说语言是一个重要的概念,因为它允许创建分等级层次的类。
继承就是子类继承父类【基类】的特征【属性】和行为【方法】,使得子类具有父类相同的行为与特征。
二、为什么需要继承
从程序开发角度来说便于系统架构的设计,并且方便维护与开发,减少了代码的复用。
三、继承的特性
-
java继承模式支持单继承与多重继承,例如
-
class b继承class a
-
class c继承class b并且class b继承class a
-
-
java不支持多重继承,例如
-
class c及继承class b也继承class a
-
-
子类拥有父类的非private属性与方法
-
子类可以拥有自己的方法,及对父类的扩展
-
子类可以用自己的方法实现父类的方法,通过super关键字
-
缺点是提高了耦合性,会使代码之间联系紧密,代码独立性查
四、如何实现继承
需要继承某个类需要使用extends关键字,下述代码为HapplyPeople这个类继承people这个类,并且使用父类的属性与方法。
这里有一点需要说明,静态方法不能直接调用静态方法或者静态变量
class people{
public static final String name = "name";
public static void printHallow(){
System.out.print("hallow");
}
}
class HapplyPeople extends people{
public static void main(String[] args) {//子类可以使用父类的属性与方法
System.out.print(people.name);
HapplyPeople hp = new HapplyPeople();
hp.say();
}
public void say(){
super.printHallow();
}
}
----------输出结果
namehallow
super与this关键字
通过运行结果可以看出,子类与父类同时拥有一个方法会优先执行子类的方法。
public class people {
public static String name ;
public static String age;
public static String getAge() {
return age;
}
public static void setAge(String age) {
people.age = age;
}
public static String getName() {
return name;
}
public static void setName(String name) {
people.name = name;
}
public void printHallow(){
System.out.println(age+name+"父类hallow");
}
}
class HapplyPeople extends people{
public void printHallow(){
super.setName("快乐的人");
super.setAge("11岁");
super.printHallow();
}
public void doSomething(){
super.printHallow();
this.printHallow();
printHallow();
}
public static void main(String[] args) {
HapplyPeople HapplyPeople = new HapplyPeople();
HapplyPeople.doSomething();
}
}
//------------输出结果
//nullnull父类hallow
//11岁快乐的人父类hallow
//11岁快乐的人父类hallow