0%

Java笔记——继承与覆盖(一)

Java中的继承是一种机制,表示为一个对象获取父对象的所有属性和行为。在Java的继承中,可以基于现有类构建新的类,当从现有类继承时,可以重复使用父类的方法和字段,也可以在继承的新类中添加新的方法和字段。在Java中,继承的类称为父类或超类,新类称为子类。在类的基础上,Java可以有三种类型的继承:单一继承、多级继承和分层继承,仅能通过接口支持多重继承和混合继承。

单一继承

//源文件PRACTICE0.java
class demo0
{
void tags0()
{
System.out.println("demo0");
}
}
class demo1 extends demo0
{
void tags1()
{
System.out.println("demo1");
}
}
public class PRACTICE0
{
public static void main(String[] args)
{
demo1 d1=new demo1();
d1.tags0();
d1.tags1();
}
}

运行结果:

demo0
demo1

多级继承

//源文件PRACTICE1.java
class demo0
{
void tags0()
{
System.out.println("demo0");
}
}
class demo1 extends demo0
{
void tags1()
{
System.out.println("demo1");
}
}
class demo2 extends demo1
{
void tags2()
{
System.out.println("demo2");
}
}
public class PRACTICE1
{
public static void main(String[] args)
{
demo2 d2=new demo2();
d2.tags0();
d2.tags1();
d2.tags2();
}
}

运行结果:

demo0
demo1
demo2

分层继承

示例一

//源文件PRACTICE2.java
class demo
{
void tags()
{
System.out.println("demo");
}
}
class demo0 extends demo
{
void tags0()
{
System.out.println("demo0");
}
}
class demo1 extends demo
{
void tags1()
{
System.out.println("demo1");
}
}
public class PRACTICE2
{
public static void main(String[] args)
{
demo1 d1=new demo1();
d1.tags();
d1.tags1();
}
}

运行结果:

demo
demo1

示例二

//源文件PRACTICE2.java
class demo
{
void tags()
{
System.out.println("demo");
}
}
class demo0 extends demo
{
void tags0()
{
System.out.println("demo0");
}
}
class demo1 extends demo
{
void tags1()
{
System.out.println("demo1");
}
}
public class PRACTICE2
{
public static void main(String[] args)
{
demo1 d1=new demo1();
d1.tags();
d1.tags0();
}
}

运行结果:

PRACTICE2.java:28: 错误: 找不到符号
d1.tags0();
^
符号: 方法 tags0()
位置: 类型为demo1的变量 d1
1 个错误

因为子类demo1和另一子类demo0分层继承自父类demo,所以demo1不能使用demo0中的方法。