标签:
Java面向对象-抽象类与接口
1.Java final关键字的使用
package edu.tongji.fni; /*final关键字 * 1、final关键字在java中被称为完结器,表示最终的意思 * 2、final能声明类、方法、属性: * 使用final声明的类不能被继承 * 使用final声明的方法不能被重写 * 使用final声明的变量变成常量,常量是不可以被修改的 */ class People{ //前面加了final下面的类会报错 public void tell(){ } } class Student extends People{ public void tell(){ } } public class FinalDemo01 { public static void main(String[] args) { String name="jikexueyuan";//加final后下一句就会报错 name="www.jikexueyuan"; } }
2.java抽象类
package edu.tongji.fni; /*抽象类 * 1、抽象类概念: * 包含一个抽象方法的类就是抽象类 * 2、抽象方法:声明而未被实现的方法,抽象方法必须使用abstract关键字声明 * 3、抽象类被子类继承,子类(如果不是抽象类)必须重写类中的所有抽象方法 * 4、定义格式: * abstract class className{ * 属性 * 方法 * 抽象方法 * } * 5、抽象类不能直接实例化 */ abstract class Abs{ private int age; public void tell(){ } //抽象方法 public abstract void say(); public abstract void print(); public int getAge() { return age; } public void setAge(int age) { this.age = age; } } class AbsDemo extends Abs{ public void say(){ //3. System.out.println(this.getAge()); } public void print(){ //3. } } public class AbsDemo01 { public static void main(String[] args) { //Abs a=new Abs(); //5、抽象类不能直接实例化 AbsDemo a=new AbsDemo(); a.setAge(20); a.say(); a.print(); } }
3、java接口的实现
package edu.tongji.fni; /*接口 * 1、接口是java中最重要的概念,接口可以理解为一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成 * 2、接口的格式: * interface interfaceName{ * 全局变量 * 抽象方法 * } * 3、接口的实现也必须通过子类,使用关键字implements,而且接口是可以多实现的 * 4、一个子类可以同时继承抽象类和实现接口 * 5、一个接口不能继承一个抽象类,但却可以通过extends关键字同时继承多个接口,实现接口的多继承 */ interface Inter1{ public static final int AGE=100;//公共的全局常量(常量要大写) public abstract void tell();//公共的抽象方法 } interface Inter2{ public abstract void say(); } abstract class Abs1{ public abstract void print(); } class A extends Abs1 implements Inter1,Inter2{ //3、4、 //需要重写接口的方法 @Override public void tell(){ } public void say(){ } public void print(){ } } interface Inter3 extends Inter1,Inter2{ //5、 弥补java中单继承的不足 } public class InterDemo01 { public static void main(String[] args) { //Inter i=new Inter();//接口不能直接被使用 A a=new A(); a.tell(); System.out.println(Inter1.AGE); a.say(); } }
接口和抽象类的相同点及不同点
标签:
原文地址:http://www.cnblogs.com/carsonzhu/p/5472159.html