类的特点--继承

继承的优点:

1、提高了代码的复用性。

2、让类与类之间产生了关系,有了这个关系,才有了多态的特性。


注意:不要为了获取其他类的功能,简化代码而继承,必须是类与类之间有所属关系才可以继承。


java中的继承:

1、java只支持单继承,不支持多继承。(因为多继承容易带来安全隐患。当多个父类定义了相同的成员,子类对象不确定运行哪一个。但java保留这种机制,并用另一种方式来体现,多实现,即接口)其中单继承也即是子类只能有一个父类。

下面程序会报错:(多继承)

public class Demo22 {

	public static void main(String[] args){
		C c=new C();
		c.show();
	}
}
  
class A{
	void show(){
		System.out.println("a");
	}
}

class B{
	void show(){
		System.out.println("b");
	}
}

class C extends A,B{
	
}

2、但是一个父类可以被多个子类继承,这是多层继承。(因为父类是所有子类的共性描述)



class A{
	void show(){
		System.out.println("a");
	}
}

class B extends A{
	
}

class C extends A{
	
}

注意:在具体调用时,要创建最子类的对象,这是因为;一是因为有可能父类不能创建对象,二是创建子类对象可以使用更多的功能,包括父类基本的也包括子类本身特有的

比如下图 C继承了B,而B又继承了A ,一般创建对象就创建C类的对象。


子父类出现后,类成员的特点:

类中成员包括三部分:

1、变量

2、函数

3、构造函数

当父类与子类定义的变量不同时,

public class Demo23 {

	public static void main(String[] args){
		B b=new B();
		System.out.println(b.num1+"  "+b.num2);
	}
}

class A{
	int num1=1;
}

class B extends A{
	int num2=2;
}

输出结果为 1     2

当子类中出现非私有的同名成员变量时,(子类会把父类的覆盖掉),这时子类要访问本类中的变量,用this,如果子类要访问父类中的同名变量,用super(super代表父类对象的引用,this代表本类对象的引用)

public class Demo23 {

	public static void main(String[] args){
		B b=new B();
		System.out.println(b.num+"  "+b.num);
	}
}

class A{
	int num=1;
}

class B extends A{
	int num=2;
}

输出结果为:2    2










猜你喜欢

转载自blog.csdn.net/pengzhisen123/article/details/78449418