标签:
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