标签:
interface A{ // 定义接口A
public static final String AUTHOR = "刘勋" ; // 全局常量
public abstract void print() ; // 抽象方法
public abstract String getInfo() ; // 抽象方法
}对于接口来讲,因为在其定义的时候已经定义了其组成就是全局常量和抽象方法,所以,在开发中往往可以简化其定义interface A{ // 定义接口A
String AUTHOR = "刘勋" ; // 全局常量
void print() ; // 抽象方法
String getInfo() ; // 抽象方法
}以上两种定义方式是完全一样的,没有任何的区别。interface A{ // 定义接口A
public String AUTHOR = "刘勋" ; // 全局常量
public void print() ; // 抽象方法
public String getInfo() ; // 抽象方法
}
interface B{ // 定义接口B
public void say() ; // 定义抽象方法
}
class X implements A,B{ // X类同时实现A和B两个接口
public void say(){
System.out.println("Hello World!!!") ;
}
public String getInfo(){
return "HELLO" ;
}
public void print(){
System.out.println("作者:" + AUTHOR) ;
}
};
public class InterfaceDemo03{
public static void main(String args[]){
X x = new X() ; // 实例化子类对象
x.say() ;
x.print() ;
}
};接口的实现interface A{ // 定义接口A
public String AUTHOR = "刘勋" ; // 全局常量
public void print() ; // 抽象方法
public String getInfo() ; // 抽象方法
}
abstract class B{ // 定义抽象类B
public abstract void say() ; // 定义抽象方法
}
class X extends B implements A{ // X类线继承B类,再实现A接口
public void say(){
System.out.println("Hello World!!!") ;
}
public String getInfo(){
return "HELLO" ;
}
public void print(){
System.out.println("作者:" + AUTHOR) ;
}
};
public class InterfaceDemo04{
public static void main(String args[]){
X x = new X() ; // 实例化子类对象
x.say() ;
x.print() ;
}
};在使用中,一个抽象类可以实现一个接口,那么对于抽象类的子类则就必须同时覆写接口和抽象类中定义的所有抽象方法。interface A{ // 定义接口A
public String AUTHOR = "李兴华" ; // 全局常量
public void print() ; // 抽象方法
public String getInfo() ; // 抽象方法
}
abstract class B implements A{ // 定义抽象类B,实现接口A
public abstract void say() ; // 定义抽象方法
}
class X extends B{ // X类线继承B类
public void say(){
System.out.println("Hello World!!!") ;
}
public String getInfo(){
return "HELLO" ;
}
public void print(){
System.out.println("作者:" + AUTHOR) ;
}
};
public class InterfaceDemo05{
public static void main(String args[]){
X x = new X() ; // 实例化子类对象
x.say() ;
x.print() ;
}
};接口的继承interface A{ // 定义接口A
public String AUTHOR = "刘勋" ; // 全局常量
public void printA() ; // 抽象方法
}
interface B{
public void printB() ;
}
interface C extends A,B{
public void printC() ;
}
class X implements C{ // X类线继承B类
public void printA(){
System.out.println("A、Hello World!!!") ;
}
public void printB(){
System.out.println("B、Hello JAVA") ;
}
public void printC(){
System.out.println("C、Hello LX") ;
}
};
public class InterfaceDemo06{
public static void main(String args[]){
X x = new X() ; // 实例化子类对象
x.printA() ;
x.printB() ;
x.printC() ;
}
};class A{ // 定义类A
public void fun1(){ // 定义fun1()方法
System.out.println("A --> public void fun1(){}") ;
}
public void fun2(){
this.fun1() ; // 调用fun1()方法
}
};
class B extends A{
public void fun1(){ // 此方法被子类覆写了
System.out.println("B --> public void fun1(){}") ;
}
public void fun3(){
System.out.println("B --> public void fun3(){}") ;
}
};
public class PolDemo01{
public static void main(String asrgs[]){
B b = new B() ; // 实例化子类对象
A a = b ; // 向上转型关系
a.fun1() ; // 此方法被子类覆写过
// a.fun3() ; //错误:子类向上转型后,是无法调用子类拓展的方法或属性的
}
};class A{ // 定义类A
public void fun1(){ // 定义fun1()方法
System.out.println("A --> public void fun1(){}") ;
}
public void fun2(){
this.fun1() ; // 调用fun1()方法
}
};
class B extends A{
public void fun1(){ // 此方法被子类覆写了
System.out.println("B --> public void fun1(){}") ;
}
public void fun3(){
System.out.println("B --> public void fun3(){}") ;
}
};
public class PolDemo02{
public static void main(String asrgs[]){
A a = new B() ; // 向上转型关系
B b = (B)a ; // 发生了向下转型关系
b.fun1() ;
b.fun2() ;
b.fun3() ;
}
};class A{ // 定义类A
public void fun1(){ // 定义fun1()方法
System.out.println("A --> public void fun1(){}") ;
}
public void fun2(){
this.fun1() ; // 调用fun1()方法
}
};
class B extends A{
public void fun1(){ // 此方法被子类覆写了
System.out.println("B --> public void fun1(){}") ;
}
public void fun3(){
System.out.println("B --> public void fun3(){}") ;
}
};
public class PolDemo03{
public static void main(String asrgs[]){
A a = new A() ; // 实例化了一个父类对象
B b = (B)a ; // 发生了向下转型关系
b.fun1() ;
b.fun2() ;
b.fun3() ;
}
};class A{ // 定义类A
public void fun1(){ // 定义fun1()方法
System.out.println("A --> public void fun1(){}") ;
}
public void fun2(){
this.fun1() ; // 调用fun1()方法
}
};
class B extends A{
public void fun1(){ // 此方法被子类覆写了
System.out.println("B --> public void fun1(){}") ;
}
public void fun3(){
System.out.println("B --> public void fun3(){}") ;
}
};
class C extends A{
public void fun1(){ // 此方法被子类覆写了
System.out.println("C --> public void fun1(){}") ;
}
public void fun5(){
System.out.println("C --> public void fun5(){}") ;
}
};
public class PolDemo04{
public static void main(String asrgs[]){
fun(new B()) ; // 传递B的实例
fun(new C()) ; // 传递B的实例
}
public static void fun(B b){
b.fun1() ; // 调用覆写父类中的fun1()方法
}
public static void fun(C c){
c.fun1() ; // 调用覆写父类中的fun1()方法
}
};class A{ // 定义类A
public void fun1(){ // 定义fun1()方法
System.out.println("A --> public void fun1(){}") ;
}
public void fun2(){
this.fun1() ; // 调用fun1()方法
}
};
class B extends A{
public void fun1(){ // 此方法被子类覆写了
System.out.println("B --> public void fun1(){}") ;
}
public void fun3(){
System.out.println("B --> public void fun3(){}") ;
}
};
class C extends A{
public void fun1(){ // 此方法被子类覆写了
System.out.println("C --> public void fun1(){}") ;
}
public void fun5(){
System.out.println("C --> public void fun5(){}") ;
}
};
public class PolDemo05{
public static void main(String asrgs[]){
fun(new B()) ; // 传递B的实例
fun(new C()) ; // 传递B的实例
}
public static void fun(A a){
a.fun1() ; // 调用覆写父类中的fun1()方法
}
};标签:
原文地址:http://blog.csdn.net/u013087513/article/details/51126776