1.多层继承
class A{
private int num=10;
public int getNum(){
return this.num;
}
public void fun(){
System.out.println("你今天真好看!");
}
}
class B extends A{
private String name="张三";
public String getName(){
return this.name;
}
public void fun(){
System.out.println(this.getNum());
}
}
class C extends B{//C类继承B类,相当于间接继承A类
private String name="刘能";
public String getName(){
return this.name;
}
public void fun(){
System.out.println(this.getName());
System.out.println(this.name);
}
}
public class Test{
public static void main(String[] args){
A a=new A();
a.fun();
print(new B());
print(new C());
}
public static void print(A a){
a.fun();
}
}
运行结果如下:
你今天真好看!
10
刘能
刘能
2.内部类
class A{
private int num=10;
public int getNum(){
return this.num;
}
public void fun(){
System.out.println("你今天真好看!");
}
}
class B {
private String name="张三";
public String getName(){
return this.name;
}
public void fun(){
System.out.println("昨天的你也很好看!");
}
}
class C {
// private String name="刘能";
class OneA extends A{//C中内部类继承A类
public void printA(){
System.out.println(this.getNum());
fun();
}
}
class OneB extends B{//C类内部类继承B类
public void printB(){
System.out.println(this.getName());
fun();
}
}
public void print(){//在C类中生成普通方法print()
new OneA().printA();//匿名实例化OneA类对象并调用printA方法
new OneB().printB();
}
}
public class Test{
public static void main(String[] args){
C c=new C();//实例化C类对象
c.print();//调用C中print方法
}
}
运行结果:
10
你今天真好看!
张三
昨天的你也很好看!
3.接口
interface IA{
void funA();
}
interface IB {
void funB();
}
interface CImpl extends A,B{
void funC();
}
class Impl implements CImpl{
public void funC(){
System.out.println("你昨天真好看!");
}
public void funA(){
System.out.println("你今天真好看!");
}
public void funB(){
System.out.println("你明天真好看!");
}
}
public class Test{
public static void main(String[] args){
Impl im=new Impl();//实例化对象
im.funA();
im.funB();
im.funC();
}
}
运行结果如下:
你昨天真好看!
你今天真好看!
你明天真好看!